アクションはMVCのC? それとも M?

Strutsのイントロダクションでは、必ずMVC/モデル2アーキテクチャについての説明がでてきます。 そして、ビューにはJSPJSTLが使われ、コントローラはStrutsフレームワークのconfigファイルなどでXML形式で定義され、モデル部分のデータベースはPostgreSQLが使われ…などと良く図で説明されてますよね。 その図でActionはどの部分にはいっているのでしょう? モデルでしょうか、それそもコントローラでしょうか。
いまだにディベロッパーの間でもActionはモデルの一部だと言う方々がいらっしゃいますが、正しくは、Actionはコントローラの一部です。 (おっ、言い切った。)
まずActionは真のビジネスロジックではありません。 というか、再利用の目的からもビジネスロジックはできるだけAction内にいれないように、と推奨されています。 それにActionはActionServletへのアクセスができる、つまり全てのコントローラリソースへのアクセスができます。 モデルはこれらについては知る必要がないのです。
ビジネスモデルのオペレーションを呼び出すのは、多くの場合Actionクラスです。 そのためビジネスロジックをActionにつめこみすぎるディベロッパーも多くいます。 きっとそういう人たちにとっては"Actionはモデルの一部"とみなすのが正しいと思ってしまうのでしょう。
でも、Actionはコントローラの一部です。