Часто оказывается, что предметная область богаче и шире предоставляемых языком средств описания. Например, что даёт нам Оберон?

базовые типыструктурыпроцедурымодули
Собственно, всё. Несмотря на то, что эти средства довольно выразительны и из них можно строить бесконечные комбинации, они слишком "широки" и недостаточно "глубоки". И это кажется проблемой. Я пока не могу толком сформулировать вопрос, который находится где-то между проектированием и конечным продуктом и связан с описанием абстракций предметной области.
Другими словами, ООП ощущается несколько слабым для хорошего, мощного и удобного описания предметной области. Мелковат. Приходится, грубо говоря, из мелких винтиков и дощечек лепить вещи, которые удобнее было бы описывать через более крупные и специализированные понятия.

Функциональные языки и прочие руби со скалами - жалкие потуги обрести способы такого описания, как мне кажется - не сочтите за троллинг, потому что не сильно далеко они ушли от обыкновенного ООП как способа нарезать реальность на куски.

Что может нам предложить программная инженерия в XXI веке для решения этой проблемы? Или мне только кажется, что это проблема?