@ Edwin
"So what do we want - a universal kernel that will run on pretty much anything, or some form of hideous hardware scanning autocompilers that recompile the kernel as soon as you plug in a new USB device?"
Actually, that's got legs.
Put a bloated catch-all kernel on the install disc, but also provide an advanced "super racing tune-up" installation option that will compile a brand new kernel with support for the auto-detected hardware and any more that the user selected (either from a menu, or just by having the user plug in their USB devices one at a time and auto-detecting them). After all, we know which modules we loaded in the first place, and which ones go with the new devices ..... well, they're obviously the ones we need to compile. Display a warning that this will take a long time and this is the last chance to bail out. Use a bootloader that supports multiple kernels, so you can start up in "super fast" mode (with your custom kernel) or "failsafe but slower" mode (with the stock one).
Now, if the user later acquires a new piece of hardware for which they didn't compile a driver module but the Source is in the Tree, the required module can always be built at a later date. Even if it is some device that needs its driver to be compiled "hard" into the kernel, or requires a new Kernel Source Tree to be downloaded, it will only be necessary to boot failsafe and rebuild the custom kernel.
This whole process can of course be almost fully automated, perhaps with a progress bar or even an amusing slideshow, for the sake of people who presumably have difficulty remembering how to spell "make".