Мне непонятно к чему всё это, вот эти все if, свойства и прочие подсветки IDE. Вы действительно считаете что это то что нужно обсудить? Это сраный код, как его писать сказано в документации к языку. Причем применительно лишь к одной конкретной реализации решения. Зачем вы это всё написали?
Это как раз перечисление минусов трейтов из практического опыта к разговору о трейтах. Вам они не нужны, а остальным читателям пригодится. А что ещё на программистском форуме обсуждать, как не код и архитектуру? Любите писать сраный код - ваше дело. А про архитектуру в документации к языку ничего не пишут.
Ну, в моем ограниченном говнокодерском понимании, архитектура - это мета проекта, а не то где и как расположен код. Потому что, повторюсь, код - вторичен, все паттерны давно описаны и разложены по полочкам на куче ресурсов на всех языках. Учить - да, обсуждать - скучно. Архитектура, ок - проблема, но коснулся её обсуждения тут пожалуй только @artoodetoo и то вскользь. Ваши IDE, свойства и набор слов не дадут новичку ровным счетом ничего: ни понимания того как делать архитектуру, ни того как писать код. Так зачем?
Создание специальных моделей для обработки форм - это специфическая штуковина Yii2, поэтому тем, кто программирует на других фреймворках, может показаться странным термин "декомпозиция в модель". В принципе, и @samdark много раз говорил, что в своё время был сделан неудачный выбор терминов для фреймворка, потому что они путаются с терминами паттерна MVC. Но переименовывать это всё было уже поздно, поскольку фреймворк начал использоваться.
Модели обработки форм – это модельки форм, а не единая модель предметной области. Декомпозиция в модель – значит сделать в модели сервис для логики восстановления пароля. Это про общее понятие всей модели, представляющей собой совокупность доменных сущностей и доменных и прикладных сервисов, а не про класс Model в Yii. В Yii класс Model определяет модель ввода, а не модель предметной области. То есть по сути там это FormModel или InputModel. Но они любят ещё и логику туда лепить. Ещё любят моделями каждую свою ActiveRecord сущность называть. С именованием как раз только в Yii путаница.