No it isn't. The reason you can't write external modules is because the kernel interfaces aren't stable. You would have to provide a module binary for every single kernel version (and maybe even for different configurations).
And the reason for that is mostly that providing a stable interface is a) a ton of work, and b) would make distributing closed source drivers easier which is something Linus hates.