自分は素人なので、あまり断定的な事は言えませんが・・・
違いはDBから取ってくるデータ
という事であれば、異なったアプローチの方がメンテナンスし易いアプリケーションになるのではないでしょうか。
###1. コントローラについて
コントローラは文字通りの中央司令塔なので、一つであるべきです。
コントローラの役割は、受け取ったリクエスト(=URL)に応じて、後段のモデルやビューの挙動をコントロールする事ですが、そのコントローラが複数有るとすれば、それをリクエストに応じて呼び分けるのは誰なのでしょうか?
その様な構成にすればコントローラ本来の役割を放棄し他に任せているだけで、イタズラに複雑化させるだけだと思います。
コントローラがすべき事は、ただ単にリクエストのパターンからカテゴリその他の情報を抽出し、パラメータ化して後段の処理を担当するモジュールへ受け渡すだけです。
###2. カテゴリ別のアクションについて
もしカテゴリ別のアクションをコントローラ内に実装しなければならないとすると、カテゴリが増える度にコントローラを修正しテストしてリリースしなければなりません!
そんなの実際的では無いですよね?
###3. おすすめの構成
どんな場合にも適しているとは言えませんが・・・
比較的に単純な構成のサイトならば、モジュール自体は極力シンプルで分岐の少ない構造とした方が、実装もテストもメンテナンスも楽です。
そして、リクエストとカテゴリ等のパラメータの対応関係(マッピング情報)は、極力ネーミングルールに基づく規約か、規約だけで対応し難ければプロパティファイル化された対応表で表すようにするのが良いです。
テーブルの設計をキチンと実施すれば、ほんの数個のパラメータだけで必要な情報にアクセス出来るはずなので、複雑なロジックを組む必要性はなく、カテゴリの追加・変更にも、プロパティの数行を差し替えるだけで対応出来るようになります。
見た目やちょっとした挙動の変化を付けたい場合にも、CSSやJavaScript等を適切に設計すれば、1、2個のパラメータで切り替え可能のはずです。
つまり、最終的に制作者の好みによるところが大きいとは言え、上手く設計すればかなりシンプルな構造で僅かなパラメータの差し替えにより、カテゴリの追加・変更に対応可能に出来ると思います。