Actually, I hope the kernel will contain less. Let's take USB for example, do we really need all sorts of various connectors? Or would we rather just use USB, teach the kernel to do low level read/write to USB devices and then do keyboards and mice and printers and scanners and digicams and webcams and external hdds and whatnot over USB in userspace?
The kernel does this to a large part already. In fact, printing is implemented in userspace, as well as many other devices. That's what libusb is for.
Devices like keyboards and hard disks don't make much sense to support in userspace, since the kernel already has to support everything having to do with hard disks, and the lower level USB protocol. The kernel knows what a hard disk is, it knows the standard USB protocol, it's very straightforward for it to use a hard disk over USB. Adding userspace there would only make things more complicated.
In fact, much the same applies to drivers in general, there's no reason why so many printers are paperweights under Linux. Can't there at least be one universal idiot mode where we feed it uncompressed raster data and it prints? Seriously.
It already exists, and it's called "postscript". Buy a printer that supports it, and no problem. But if the printer insists in talking its own weird language it's not going to accept your "uncompressed raster data".