Я полностью не согласен.
Скорость вызова не имеет значения: команды являются взаимодействием с пользователем, они никогда не требуют скорости.
Аргумент о связи тоже ошибочен. Почему {Binding MyProperty} не связан, но {ViewMethod MyMethod} есть?
Требовать наличия специально созданных «Команд», чтобы обернуть их вокруг методов, глупо. Команды могут быть полезной реализацией под прикрытием, но у нас уже есть методы в C #, и замена их чем-то большим и громоздким не верна.
А вот что касается MarkupExtension и Binding, это действительно сложно. Но это может быть сделано. На самом деле, все готово, вы можете взглянуть на проект MethodCall на CodePlex:
http://methodcallthing.codeplex.com/
Вы можете использовать привязку, чтобы выбрать 'this' для метода, и можете использовать привязку, чтобы получить аргументы. И все они живы, то есть рассчитываются во время вызова команды. Еще одна бонусная функция - результат выталкивания при вызове метода, для которого вы также можете использовать привязку (OneWayToSource).