Точное решение о том, как разбить ваше решение, субъективно - и оно действительно зависит от специфики вашего кода.
Однако одно можно сказать наверняка: обслуживание нескольких сборок имеет недостатки! Эта статья особенно хороша для описания этих недостатков, наблюдения за тем, как они увеличивают затраты во время разработки, времени компиляции, времени развертывания и времени выполнения.
Я использую как можно меньше сборок, стремясь к одной сборке, изолируя изменчивые области домена. Когда несколько сборок явно уместны или необходимы (и они часто, в частности, для обеспечения разъединения), я делаю все возможное, чтобы сгруппировать интерфейсы, которые в одно и то же время преобразуются в одни и те же сборки.