MVCのVとCと分ける意味

MVCモデルは、その本質としてM(モデル)の独立性をあげることがメインとなるアーキテクチャですが、V(ビュー)とC(コントローラ)を分けることの意味とはなんでしょうか。

実装レベルにおいて、VとCの明確な境界を設けるのは難しい?という話もありますが、そもそもGUIクライアントアプリケーション(Windows Forms, Swingなど)においては、Vに入力装置(例えばボタン)がついているので、ほとんどがビューを通したコントローラとなる部分が、VとCの境界をあいまいにする原因なのではないかと思います。

しかし、MVC2などと呼ばれるWebアプリケーション向けのMVCは、逆にVとCの分離を理解しやすくなっています。これは、Webアプリの特性であるHTTPを利用するという制約によって、HTTPリクエストの単位でCを起動すればよく、URLによって明確にCを意識できることが大きな理由です。つまり、Webアプリケーションの場合は、ブラウザのサブミットボタン以外にも、Telnetで直接HTTPヘッダとボディを送信したりできるわけで、一見、GUIクライアントアプリケーションと同じUIっぽいのですが、入力系統を制限できるかどうかによって、VとCを分けるメリットの重みが違うと言えるのではないでしょうか。