kotlin-reflect
is only necessary if you want to use Kotlin reflection. It’s currently much bigger than the other Jars, and many apps/libs won’t need it.
The point of -no-stdlib
is to decouple compiler and stdlib versions. There is really no good reason to couple them, except to make direct use of the compiler CLI more convenient. (But then most users should use a build tool with Kotlin support instead of the compiler CLI.) As for compatibility guarantees, I’d check prior posts by the Kotlin team on this topic.