My take as a "young developer" isn't that the kernel is too complex or that I don't like developing for the kernel (although it certainly does have its issues) as that the drawbacks outweigh the benefits. I've written device drivers for some stuff I've got laying around as well as done some board support and bringup and the experience isn't any worse than one could expect from such a task. However, working on the *mainline* Linux kernel:
a) Doesn't get me paid.
b) Isn't "hip" - you don't see kernel developers speaking at media conferences or hanging out with celebrities, like you do "web 2.0 kids." The no-e-fame aspect is actually appealing for me but not for many of the people I've met.
c) Involves dealing with a lot of douchebags.
d) Involves wasting my time convincing an old-hands crowd self-assured of their relative place in the development world that my ideas have merit (also see c).
I "develop for the kernel" just fine, but I have no interest or desire in getting my patches to mainline - they benefit few people, Git makes it easy to track trunk while keeping my own code around, and I don't want to waste my time dealing with the douchebaggery and politics involved in reaching the mainline kernel.