Jeg tror, at password-matching hører hjemme i klientgrænsefladen og aldrig bør komme til serveren (DB-laget er allerede for meget). Det er bedre for brugeroplevelsen ikke at have en server tur/retur bare for at fortælle brugeren, at 2 strenge er forskellige.
Med hensyn til tynd controller, fed model... alle disse sølvkugler derude burde skydes tilbage mod ophavsmanden. Ingen løsning er god i nogen situation. Tænk alle af dem i deres egen kontekst.
At bringe den fede model her, får dig til at bruge en funktion (skemavalidering) til et helt andet formål (adgangskodematchning) og gør din app afhængig af den teknologi, du bruger nu. En dag vil du gerne skifte teknologi, og du vil komme til noget uden skemavalidering overhovedet... og så skal du huske, at en del af funktionaliteten af din app var afhængig af det. Og du bliver nødt til at flytte den tilbage til klientsiden eller til controlleren.