En absoluto soy un experto, así que lo único que puedo darte es mi opinión.
Yo creo que no hay que imponerse unas reglas estrictas ni obsesionarse con aplicar la fórmula supuestamente correcta.
Yo también aprendí separando claramente. Hablo de separación totalmente estricta, creaba tres clases (tres archivos .java) llamadas Vista (donde se creaba la GUI), Modelo (donde se tenían los datos, ArrayLists, etc..) y Controlador(hacia de nexo entre las otras dos), más las clases necesarias para crear el resto del programa.
Tenía sus ventajas, pero en general, esa separación tan "excesiva" provocaba escribir muchos más métodos, muchos de los cuáles lo único que hacían era llamar a otro método equivalente declarado en otra clase.
A veces ocurría que la Vista pedía al Controlador, que llamase a un método del Modelo, el cuál a su vez lo que hacía era pedirle al Controlador que llamase a otro método de la Vista...demasiados pasos intermedios...
Con el tiempo fui prescindiendo de esta separación tan estricta ya que no era realmente necesaria para seguir aplicando el patrón MVC, incluso en una única clase se puede aplicar este patrón.
Cada programa es distinto y en cada uno de ellos veía que podía ser más o menos laxo con este patrón, si con ello conseguía que el programa fuese más eficiente e incluso más entendible al leer el código.
En definitiva, si te encuentras casos en los que ganas en eficiencia sin por ello perder eficacia (eficacia y eficiencia son cosas distintas) permitiendo que la Vista y Modelo se mezclen un poquito, pues no pasa nada.
De todos modos, conceptualmente hablando, da igual si Vista y Modelo están estrictamente separados o están totalmente mezclados.
La Vista siempre será lo que el usuario puede ver, la "fachada" del programa.
Y el Modelo siempre será lo que el usuario no puede ver, lo que ocurre internamente "entre bambalinas".