Creo que te salia mucho mejor usar Zend Framework o parecidos para que veas como aplican varios patrones de diseño en su MVC tales como
"Two step view" y "Composite view"
http://martinfowler.com/eaaCatalog/twoStepView.html http://java.sun.com/blueprints/corej...ositeView.html
Para resolver varios de los problemas que mencionas aquí, yo se que deseas aprender pero creo que el problema de aprender así es que empiezas por el lado equivocado cuando en realidad necesites hacer cambios en tu código te costara mucho trabajo ya que todo lo construiste sin una planeación mas robusta del código.
Yo por ejemplo vi sus ruteadores y sus Front controllers de Code Igniter, Cake PHP, Solar y Zend Framework y me gusto mucho la elegancia con la cual lo hace Zend y despues aplicar los conceptos a tu MVC es sencillo pero si no entiendes correctamente la delegación de funciones a objetos que les conciernen dificilmente vas a lograr algo más que mal código y tu intento por migrar tu aplicación a MVC sera meramente un "intento lleno de trucos parches y mañas"