Почему nameof(User.Age) возвращает "Age" а не "User.Age" тем самым убивая множество дополнительных сценариев использования. Если нужно только последнее имя, ну так разделить строку по точке, да и взять последний кусок. Теперь же например нельзя использовать nameof для MVC биндинга
Html.TextBox(nameof(User.Age))
Они же сами приводят пример использования
<%= Html.ActionLink("Sign up", @typeof(UserController), @nameof(UserController.SignUp)) %>
Ну видно же что криво, и можно все сделать одним параметром.
<%= Html.ActionLink("Sign up", @nameof(UserController.SignUp)) %>
Со временем еще можно напридумывать другие сценарии. В чем логика?