Мисля, че съвпадението на паролата принадлежи на клиентския интерфейс и никога не трябва да стига до сървъра (слоят на DB вече е твърде много). По-добре е за потребителското изживяване да нямате двупосочно пътуване към сървъра, само за да кажете на потребителя, че 2 низа са различни.
Що се отнася до тънкия контролер, дебелия модел... всички тези сребърни куршуми трябва да бъдат изстреляни обратно към инициатора. Никое решение не е добро във всяка ситуация. Помислете за всеки от тях в неговия собствен контекст.
Пренасянето на идеята за мастния модел тук ви кара да използвате функция (валидиране на схема) за напълно различна цел (съвпадение на пароли) и прави приложението ви зависимо от технологията, която използвате в момента. Един ден ще искате да промените технологията и ще стигнете до нещо без валидиране на схема... и тогава ще трябва да запомните, че част от функционалността на приложението ви разчита на това. И ще трябва да го преместите обратно на клиентската страна или на контролера.