Наверное, потому что надо код писать, а не о высоких материях
рассуждать? Все эти концепции и парадигмы создаются с вполне
конкретной целью: повысить сопровождаемость кода. Наследование
используется, когда есть несколько подпрограмм, которые ведут себя
схоже, и можно общие части вынести в уровень пониже. Прототипная
модель (js, lua) в этом отношении даже удобнее - класс-родитель
имееют доступ к данным класса-потомка. При этом для "клиента" кода
все будет спрятано за единственным вызовом do_something() и не нужно даже разбираться, кто же за интерфейсом, до тех пор, пока он понимает о чем речь.
К тому же, вся эта шумиха вокруг ООП должна была утухнуть лет двадцать назад. Нашествие ECMAScript и MVVM принесло в этот бренный мир функциональщину с реактивными вычислениями, которая теперь - не удел фриков от мира программирования (ну, и немножко Excel'я), а обычные будни.
Ах да, куда чаще я встречаю полное (нет, серьезно) непонимание принципа построения систем на базе event-loop'ов. Еще раз убеждаюсь, что нельзя людям начинать учиться программированию с Microsoft'а. Тамошние системы этот замечательный вызов select()/poll() прячут куда подальше, недайб-г программист узнает, как же оно на самом деле работает.