Большая часть шаблона MVVM открыта для интерпретации.
В большинстве проектов наступает момент, когда время, необходимое для принудительного строгого разграничения работы между ViewModel и поведением View, может быть вредным для временных масштабов.
Лично я гарантирую, что все бизнес-логи c хранятся строго в пределах ViewModel и Model, цель состоит в том, чтобы система все еще работала, даже если пользовательский интерфейс был заменен кодом.
Я стараюсь сохранить как можно больше пользовательского интерфейса, включая анимацию в представлении, и это может означать, что для поддержки этого кода потребуется добавить немного кода. Не забывайте, что это может также включать библиотеки кода, которые используются только XAML, такие как преобразователи значений, например использование логического свойства в ViewModel для переключения цвета фона представления.
Иногда, хотя вы может потребоваться, чтобы ViewModel управлял только некоторыми данными, чтобы представление могло их представить.
Это, на мой взгляд, прагматично, приемлемо, НО ViewModel НИКОГДА не должен ссылаться на элементы управления UI напрямую, только представлять данные.
В случае запуска анимации или событий в интерфейсе, я лично не У меня есть проблема с наличием свойства ViewModel, которое используется для этой цели, хотя некоторые могут утверждать иначе.
В упомянутых вами примерах я думаю, что все это может быть выполнено в коде или с использованием преобразователей в xaml.