このあたりは悩み所だよなぁ。どこで切るかケースバイケース過ぎる。

ViewModelはViewのシャドウなわけである程度依存するのは仕方ないのでは?
例えば選択状態をViewModelが知っているだけでも、
ViewModelはViewが選択機能を持つことを知っていることになる。

MVVMのそもそもの動機(自動回帰テスト、スキンに依存しない構造)を考えると、
ViewModelはViewの機能には依存しても、Viewの"インスタンスに"依存しない、が正しい気がする。