Android ART is, effectively, a native compiler for a Java-targetted (but not JVM) bytecode too.
There's also a javascript transpiler and tools to adapt typescript definitions so you can use Kotlin for react work or node.js work as well.
But yes this goes down to llvm. You can also import and compile c/c++ libraries via headers. I've been doing it recently.
This is the strength with multi platform declarations. you can write a back-end service then pick the best run time for that component.
I haven't heard of kotlin-native, but apparently it isn't using GraalVM under the sheets which is interesting.
GraalVM native images are a different matter. It uses the Java memory model and ahead of time compiles all the code to native. The "VM" part is bundled with the binary but it's very small and thin. Really it's just a simple generational GC and a bit of support for reflection over things you said you want to reflect over.
Both produce small binaries that start as fast as C programs do. In fact the GraalVM team have advertised cases where native-image binaries start faster than C programs do.
https://github.com/JetBrains/kotlin-native
does this mean end user can run without JRE? Does Java proper have something similar?