AFAIK, loadable kernel modules has nothing to do with microkernels. Those are still running in the kernel space.
Maybe you meant something like FUSE.
Maybe you meant something like FUSE.
IMO, loading the drivers at runtime is the easiest part of microkernels. It is really very very very tiny step. There are a lot more things to do, like doing IPC between operating system components, managing memory, scheduling, protection of the system & driver process running in the user space.
Finally, loadable kernel modules does not give you any security and reliability. Those modules still share the same address space with the kernel and each other.