Я думаю, это все дело вкуса. Лично мне нравится, как вы видите это в образцах, на которые вы смотрите. У IView есть один метод - SetViewModel (...). IViewModel имеет свойство View типа Object, которое, по существу, возвращает экземпляр IView, созданный DI.
Причина, по которой мне нравится этот способ, заключается в том, что я почти всегда хочу сначала создать ViewModel, и я хочу, чтобы nobody в коде мог делать что-либо с моим IView, кроме получения ссылки на экземпляр ( представление внедрения или привязка представления, например, ContentControl), поэтому он имеет тип объекта. Если какой-либо код должен взаимодействовать с представлением, для меня это всегда через виртуальную машину ... и даже тогда представление обновляется обычно через связывание. Было бы странно перейти из View-> ViewModel-> UpdateBinding-> View, чем VM-> UpdateBinding-> View
Чтобы ответить на вопрос, мне обычно не нужна ссылка на докладчика в коде. Обычно я могу справиться с этим с помощью команд из представления, привязанного к виртуальной машине.
В некоторых случаях вам может понадобиться оставить ссылку на докладчика, чтобы сделать то, что вы имеете в своем примере, но этого можно избежать, если использовать правильный набор инструментов (делает SL труднее, потому что он не имеет встроенных команд).
Как я уже сказал, все дело вкуса ...
-Jer