Je pense que la correspondance des mots de passe appartient à l'interface client et ne devrait jamais atteindre le serveur (la couche DB est déjà trop). Il est préférable pour l'expérience utilisateur de ne pas avoir d'aller-retour de serveur juste pour dire à l'utilisateur que 2 chaînes sont différentes.
En ce qui concerne le contrôleur mince, le gros modèle ... toutes ces balles en argent là-bas devraient être renvoyées à l'auteur. Aucune solution n'est bonne dans n'importe quelle situation. Pensez à chacun d'eux dans son propre contexte.
Apporter ici l'idée du gros modèle vous oblige à utiliser une fonctionnalité (validation de schéma) dans un but totalement différent (correspondance de mot de passe) et rend votre application dépendante de la technologie que vous utilisez actuellement. Un jour, vous voudrez changer de technologie et vous arriverez à quelque chose sans aucune validation de schéma... et vous devrez alors vous rappeler qu'une partie de la fonctionnalité de votre application en dépend. Et vous devrez le déplacer vers le côté client ou vers le contrôleur.