Давайте на секунду представим, что бизнес-модели нет. only вещь, которую вы имеете, является представлением. Если вам нужно смоделировать только это представление, не зная, что означают данные в других частях системы, это ViewModel.
Цель ViewModel состоит в том, чтобы смоделировать вид, который он поддерживает. Это другая цель, чем моделирование идеи клиента в вашей бизнес-сфере. Сказать, что у вас будет одна ViewModel для каждой бизнес-сущности, значит, у вас будет по одному представлению для каждой бизнес-сущности, что приведет к общепринятому пользовательскому интерфейсу, ориентированному на данные.
В вашем конкретном случае подумайте о представлении редактирования клиента. Он имеет поля, которые соответствуют свойствам клиента, и, таким образом, кажется естественным для привязки к клиенту напрямую. Однако где на объекте customer смоделировано действие «Отправить»? Где смоделировано действие «Отмена»? Где моделируется, что поле X является перечисляемым значением, выбранным из списка?
Как насчет пароля? Если оно сохраняется в виде двоичного хэшированного значения, знает ли представление, как хэшировать его текст? Что если в системе установлены требования к надежности пароля?
ViewModel - это миномет между бизнес-моделью и пользовательским интерфейсом. Это берет проблемы от одного и переводит их в терминах другого. Это тот момент, когда все вышеперечисленные вопросы решаются. Сказать, что ViewModel не нужен, значит игнорировать его необходимость.