Cada capa debe tener su propia validación, independientemente de la otra capa, pero muchas veces el tema es qué validar.
Todo lo que fuera "lógica de negocio" debería ser responsable el "Modelo", y en la presentación, "Vistas", bien puedes hacer el pedido de información al Modelo: conceptualmente hablando muchos piensan que MVC significa que el controller debe pedir los datos primero al Modelo para pasarlo a la Vista y esto no es correcto.
Por lo tanto, si en el modelo estarán tanto la lógica como la persistencia (que eso no significa que tengas clases que hagan ambas cosas juntas, bien puedes tener una clase Modelo que haga de fachada a clases que sean de lógica y otras de persistencia), puedes pedir desde la vista al modelo sin pasar por el controller la información que necesites.
Si usas Ajax, por cómo funciona el MVC, no te quedará otra que pasar por el controller ya que es una petición del exterior.
Esto no quita que además tengas lógica de negocios en la base de datos, pero eso no significa que debas eliminarlo de todas las demás capas. Que es redundante, sí, que es pesado mantenerlo, sí, pero toda redundancia además de un costo tienen un beneficio (y viceversa) y hay que evaluar los contextos
De todas formas las capas deberían ser independientes, bien podrías evaluar información "genérica" en las capas que no son de dominio y en estas lo más específico, por ejemplo:
- Pides el email en el form y luego se lo pasa al modelo y la persistencia te lo rebota por no estar bien formado (la validación la haces en una capa)
- Pides el email en el form y lo validas ahí para no tener que pasar a la persistencia, pero en caso que algo falle en la interfaz esto es controlado también a la hora de persistir.
- El punto 2 también es útil cuando tienes varias capas de presentación, o cuando decides cambiar la presentación por otra, y así logras que tu sistema se mantenga consistente.
PD: cuando hablo de capas o de dominio/presentación/persistencia
no estoy diciendo que MVC sea 3 capas ni que cada uno de los componentes del MVC se correspondan directamente con cada capa, trabajan de forma distintas, pero hay conceptos comunes que se mantienen (capas, responsabilidades, etc, muchas veces agrupados dentro del Modelo).
Saludos