I think it separate process and the both process communicate with each other, the process running the backend in Rust and the frontend in Kotlin/JVM. I’m assuming that obviously, don’t know if they have JNI binding for couple Rust functions.
This separate process and communication protocol I think is what also makes possible to run remotely the backends.
I don’t think they also use Compose for Desktop tbh, ( maybe now they use, but when they release it it was not using) instead they use the CfD base that is Skiko.