> c++ and java oop are so far away from the original ideas of the original 'oop' of smalltalk

This is the fundamental misunderstanding; there is no "original OOP" but different "strains of OOP" viz. the Simula67 vs. Smalltalk models.

C++ followed the Simula approach (i.e. static object model) while Java is hybrid mixing both Simula and Smalltalk approaches (i.e. dynamic object model but with static typing). You have to look at the entirety of the OOD/OOP domain to understand how modern languages have evolved OOP support.

See also OO History: Simula and Smalltalk - https://www.cs.cmu.edu/~charlie/courses/15-214/2014-fall/sli...