I made the original statement that Java set back OOP by 20 years. And I stand by it. I used Java extensively for 8 years. I also programmed in Smalltalk for 10 years prior. Your assertion that "OOP, at the moment, is recognized as being what C++, Java, .NET are" is precisely the problem. People don't know their history.
Java is not a horrible language. It did set back good OOP by about 20 years. There is no reason to bring C++ into the debate. Prior to Java, the C++ community understood that C++ was not a great OOP language. C++ was C++ and people chose it for its unique characteristics, none of which was that it was a great OO language.
Next invested heavily in Objective-C for precisely the reason that they needed to get closer to the metal but knew that C++ was not great at OOP.
Java is not a horrible language. It did set back good OOP by about 20 years. There is no reason to bring C++ into the debate. Prior to Java, the C++ community understood that C++ was not a great OOP language. C++ was C++ and people chose it for its unique characteristics, none of which was that it was a great OO language.
Next invested heavily in Objective-C for precisely the reason that they needed to get closer to the metal but knew that C++ was not great at OOP.