Прежде всего, если вы определите только один маршрут в MVC, т.е. / {controller} / {action} / {id} (кстати, по умолчанию), механизм маршрутизации будет работать идеально, так как каждое действие в MVC должно быть определено в контроллере.
Иногда вы можете захотеть использовать несколько специальных маршрутов, например / users / {id} / {username}, например, эта страница должна создавать маршруты, которые имеют смысл для ваших пользователей и поисковых систем. Это очень интересный подход, который очень сложно реализовать в ASP.NET (до 4.0).
ИМХО, нет ничего плохого в том, чтобы в вашем приложении были логически угаданные имена маршрутов, это выглядит намного лучше, чем иметь загадочные длинные URL с загадочными путями. Позволить пользователю «угадать» URL-адреса совсем не плохо.