Ответ, это зависит. Во-первых, отдельная библиотека классов не всегда означает отдельный «слой». Слой - это концептуальная группа связанных функций, которые могут проявляться или не проявляться в одной сборке.
Сколько слоев вы создаете, зависит от вашей проблемы. Традиционно приложение WPF MVVM будет содержать по крайней мере 3 слоя (Модель, Представление, Представление Модель), но его действительно можно варьировать. Часто я вижу Views и ViewModel в одной сборке и модели в их собственной сборке (обычно потому, что объектами Model являются POCO, которые используются в других контекстах)
На самом деле нет серебряной пули, которая отвечает на ваш вопрос, она полностью зависит от вашей проблемы. Преимущество «наслоения» и разделения состоит в том, чтобы повысить удобство сопровождения, способствовать повторному использованию кода и повысить общую ясность (и многие другие).
Я бы сказал, что если вы не достигли этих целей с помощью вашего текущего многоуровневого решения, у вас есть возможности для улучшения. Если увеличение слоев уменьшение ясность или ремонтопригодность, то вы зашли слишком далеко. Если у вас есть только один «слой», и он становится раздутым, у вас есть возможность добавить слой.
Суть не в том, чтобы что-то перепроектировать ради следования строгому «образцу». Если шаблон имеет явные преимущества для вас и для вашей проблемы, то реализуйте его, но поймите, почему вы это делаете и какова цель каждого «слоя».