Проверка на уровне домена и проверка View-Model совершенно разные imho (хотя они могут иметь много совпадений).
Например, может быть вполне допустимо, чтобы в вашей базе данных было определенное поле со значением NULL, но требуется его ввод для определенных веб-форм. В этом случае вы должны проверить нулевое значение при проверке модели.
Было бы вполне нормальным для нескольких клиентских приложений использовать одни и те же контроллеры домена (например, через WCF), но иметь другую прикладную логику проверки.
Если вы используете DataAnnotations в своей модели представления, вы можете получить клиентскую проверку javascript бесплатно, поэтому, как правило, у меня всегда есть отдельная ViewModel из моих объектов Domain, даже если это отображение 1: 1 - я просто используйте AutoMapper для перевода между ними. В дополнение к получению проверки на стороне клиента, это также уменьшает беспорядок в проверке домена.