There isn't any reason it can't be a kernel module, it could even be dynamically loaded if you wanted to.
Anyways, from what I am seeing from tech trends, the future is multi-platform, and it's only becoming easier to code for everything all at once. Smart people are taking time and energy to research things like WASM and APE (which supports Cosmopolitan Libc), not to mention long-running initiatives such as containerization, the various JS engines and other languages which run anywhere, etc. Even with ARM vs x86 happening, software runs cross-platform more and more.
Anyways, from what I am seeing from tech trends, the future is multi-platform, and it's only becoming easier to code for everything all at once. Smart people are taking time and energy to research things like WASM and APE (which supports Cosmopolitan Libc), not to mention long-running initiatives such as containerization, the various JS engines and other languages which run anywhere, etc. Even with ARM vs x86 happening, software runs cross-platform more and more.