In sostanza stai chiedendo quali sono le implicazioni della rottura del pattern MVC. Puoi scrivere un'applicazione in qualsiasi modo tu voglia. Tuttavia, il vantaggio di utilizzare un modello come MVC è che è ampiamente noto. Qualsiasi programmatore che capisca MVC può guardare la tua applicazione e dire "Sì, capisco come i dati fluiscono attraverso l'applicazione e posso aggiungere funzionalità a questa applicazione esistente". Se esci dal libro e inizi a utilizzare un modello non riconosciuto, solo tu saprai come funziona. Dovrai dedicare del tempo a formare qualcun altro per imparare come modificare il tuo codice. Un altro svantaggio è che se hai bisogno di aiuto con la tua applicazione, allora dovrai trovare qualcuno che capisca il tuo codice prima che possa aiutarti.
Se hai già scritto codice utilizzando il pattern MVC, devi continuare a farlo. Cambiare il metodo con cui i dati vengono passati attorno all'applicazione dopo aver iniziato a scriverlo è una cattiva idea. Il codice confonderà tutti gli altri e probabilmente non lavorerai su di esso per un paio di mesi.
Se stai creando un'istanza di una classe controller nella tua vista, allora dovrai testarla. Questo può essere un dolore da testare. Non so come si prevede di utilizzare il controller una volta istanziato, ma se si prevede di fare qualsiasi logica nella propria vista, sarà difficile da testare. C'è una ragione per cui il controller modifica la vista e non il contrario. È più facile testare un controller che una vista.
Questi sono alcuni motivi per cui la divergenza dal pattern MVC e il motivo per cui creare un controller all'interno di una vista è una cattiva idea. Sono certo che ci sono alcuni buoni motivi per farlo, ma lascerò che qualcun altro li esplori.