Разберитесь с разницей между ООП и процедурным программированием для начала.
ООП в формулировке "Инкапсуляция, Наследование и Полиморфизм" может и не нужно.
Объектно-ориентированный дизайн как инструмент декомпозиции нужен чтобы контролировать сложность системы.
И вообще, вы хотите чтобы вам тут в двух словах разобрали тему многих книг и публикаций. Так не бывает.
то прелесть этой абстракции теряется - объект слишком сложный, чтобы его представить, непонятно что от чего наследуется где-то в недрах кода, всё по 100 раз переопределяется...
От того что автор это месиво назвал ООП оно таким не стало. Вы судите по инструменту на примерах его плохого использования.
И в этом, нужно сказать, есть и здравый смысл. ООП сейчас это термин не имеющий конкретного определения, и его понимание у всех своё. Поэтому стоит смотреть на что-то более конкретное.
Впрочем, если вам этот ответ что-то даст:
Цель ООП - управление сложностью ПО.