Most of that code is not loaded into the kernel, only when needed.
The SeL4 kernel is 10k lines of code. OKL4 is 13k. QNX is ~30k.
I've asked this question a few times over the last few years when people bring up "we must use microkernel now! They already exist!"-type posts, and thus far the response has either been crickets or vague hand-waving with microbenchmarks that bear no relation to real-world programs.