Recompiling the kernel is a common topic for Linux users because its kernel design requires recompiling everytime you add driver support for a device. This is not a desired feature.
The point of kernel extensions in the I/O Kit is to allow Mac OS X's kernel to dynamically load device drivers as needed when booting. Linux can't do this. Do you want to muck with compiling your kernel when you change your hardware? Yikes!
Also, "kernels" aren't some kind of module you can pop in and out. Even within Linux, there are scores of dependancies between applications and the specific version of the Linux kernel. And you obviously can't drop in another kernel in place of Linux and expect your system to somehow work.
By the same token, it is innane to suggest that it would be possible (or useful) to replace the Darwin kernel with Linux (or the NT kernel, or even BSD). It would be problematic even to get the Tiger (Darwin 8) kernel to work in Jaguar (Darwin 7).
Darwin's use of Mach makes it significantly different from most other Unix/Linux distributions. The windowserver (and everything else!) is closely integrated with Mach's messaging structures; you simply could not replace Mach with a more conventional style kernel without redesigning the entire architecture of Mac OS X.
And why would you want to? Linux does not have some magical advantage in performance over Darwin when similarly tasked and similarly equiped.
Sure you can customize the Linux kernel and build in support for specific things and trim out features that result in a faster, tuned system fit for a specific purpose, but that (a tunable server system) isn't what Apple is trying to provide at all.
Linux, conversely, will never approach the ease of use, familiarity, consistancy and integration that Apple has aimed for when engineering Mac OS X's architecture.
The idea of a "kernel" is a bit of an abstraction anyway. There is not a clear line between what is exactly the kernel and other components that interact very closely with it.