- 責務的には*.xaml.csはあくまでViewでしょ
- なので、責務を考えればViewModelは別クラスにするのが当然
- InitializeComponentしかない*.xaml.csが出来ちゃうのは開発環境的な都合
- *.xaml.csが空なのは気にすんな
- 逆に、MVVM的な責務を気にしないなら、*.xaml.csにコマンドやプロパティを定義するのはあり(別にそうやりたいわけではないですが)

っという認識で合っていますでしょうか?
これで合っているのなら、自分的には納得ですが。