If you pay much attention to Kay, he absolutely despises the way Java, C#, etc. implemented OOP. Just despises them.
My #1 problem with OOP isn't OOP per se, it's the people who get a hold of inheritance, convince themselves that it's the most important concept in OOP, and then set about writing these massive Towers of Babylon that much more resemble biologists working out the specific taxonomy of whether a bird represents a completely separate genus than some other bird or is just a different species within the same genus, then software engineers getting paid to deliver a working application to the people who pay the bills. In other words, it leads to far too many arguments over what colors to paint the sarcophagi in the pyramid that they are certain must absolutely must be built.
It's rather frustrating.
It's not inherently (no pun intended) mandatory in OOP, but it *is* a mindset I see in it. But I'm also quite sure that if these folks were using something else, we would see the same problems manifest themselves in new ways in the "something else".
J.Ja