To support a language an IDE needs to read the user-input, parse it and built the AST tree to resolve the references, for features likes auto-completionen. These three requirements, reading input, parsing and building the AST tree are also required by a compiler. To not rebuild this, the Kotlin compiler (and sqldelight too) uses IntelliJ as the frontend of the compiler, that's why the compiler is 60 MB and JVM only.
AFAIK, with K2, the usage of IntelliJ in the frontend is minimized now, not used for resolving, but still used for parsing. PSI is "just" a nice api on top of the AST tree.
I guess, there are two reason to provide the J2K in the IDE: 1. business, it is a nice feature for IntelliJ, but mostly, 2. you need to check the code for errors, not compile ones but logical too!