https://cs.gmu.edu/~sean/stuff/java-objc.html
The C++ like syntax was to make it more marketable.
Java, like Smalltalk and Objective-C, and others in Xerox linage, is a full stack experience, naturally one cannot dissociate the language from the JVM, that is programming with one arm tied behind the back. Language and platform were designed to work together.
As for doesNotUndertstand, for some limited use cases you would use dynamic proxies,
https://docs.oracle.com/javase/8/docs/technotes/guides/refle...
Tutorial is for Java 8, but java.lang.reflect.Proxy exists since Java 3 (1.3).
And as for reaching out to JVM low level stuff, there is invokedynamic, JVM version of .NET DLR.
Also this meta-level programming is quite common in Smalltalk, when playing around with metaclasses, and Smalltalk APIs for the VM.
Can you really claim as Smalltalk inspired a language without an easy to use DoesNotUderstand? That's pretty much the basis for first class messages and transparent delegation.
Also: https://www.youtube.com/watch?v=ccRtIdlTqlU