I know for a fact it uses different bytecode features if the level is >= 1.8, not sure how smart it is above that.
Going forward while for Java code there is no worry about using SIMD, JNI replacement, value types, Kotlin code will need to make use of KMM for code that is supposed to target both JVM and Android.
It can do stuff android doesn't support if you set the bytecode target level to > 1.8
It's like using modern Javascript features but providing a polyfill for older browsers.
Also stuff like value classes will have different semantics in memory consumption and performance across targets.
Maybe some learning required?
You are either being deliberately obtuse or you genuinely have difficulty to understand that Java version, bytecode version, Kotlin compiler output and what bytecode Android supports are totally independent concepts.
It is going to be fun to port back stuff to Java.
Additionally it is stuck on Java 8 view of the world, otherwise those .class files won't be usable on Android toolchain thanks Google.