If the binary was not compatible it couldn’t be executed by the JVM. Groovy, Scala, you name it, all generate fully compatible JVM bytecode.
Either a language runs on top of the Java virtual machine or it does not. There is no inbetween.
Or are you referring to additional code being generated by a language, in order to support a certain language feature? That would be still fully compatible JVM bytecode.