MVVMはビューに反映させる必要のあるデータを全てVMの状態として持たなきゃいけないから、
Mの更新があったときにVMの更新前の状態に依存した複雑な更新ロジックを書いてしまいやすいんだよね
その点Reactなんかは、MからVへの単方向バインディングで済むデータについてはVM相当の中間層(コンポーネント)に状態を持たないからプログラマが間違える余地がない
本来MVVMでもVMはMの内容を関数的に反映しているだけになるように作るのが正しいのだが、それをアーキテクチャ的に強制できないんだよ