stwa, ваш подход мне не очень нравится, потому что пользователь в системе одни и правила для них одинаковые (неважно как будет происходить регистрация, через форму или еще как), а в вашем подходе нужно будет прописывать одни и те же правила для валидации логина и пароля, и когда регистрация будет происходить через форму или еще как нибудь...
Вот над каким подходом я подумал, есть модель user у нее есть свойства типа логина, мыла и тд.
Там в статическом методе рулес прописываются все правила, но только для свойств этой модели...
А поля типа капчи и повтора пароля будут описываться в модели формы, но только эти правила, правила для логина и других свойств сущности не дублируются туда...
В контроллере вызываем вспомогательный класс и передаем туда два объекта, модель формы и модель пользователя, а также данные, этот класс соберет все правила проверок в единое и отвалидирует,
и если все ок он может вернуть валидный объект пользователя, в общих чертах как-то так...