Итак, что я вынес из этой темы:
1) архитектура это сложно-сложно, не лезьте сюда, у нас тут и математики и социология и вообще самим работы не хватает.
2) тысячи классов это нормально, всё равно как уменьшить сложность мы не знаем.
и .Net Framework с его циклическими зависимостями между assemblies — это да, пример для подражания...
3) разрабатывать архитектуры мы не умеем, можем только по тестовым использованиям сказать — удачно вышло или не очень.
кто умел разрабатывать, так это Страуструп, с его
CRC-карточками, метод, который никто не вспомнил
но этому итак в русской культуре с детства учат, показывая игру в подкидного дурака с разными возможностями разных персон