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