Okay, I think I've been convinced that "device trees" (the new Linux kernel thing for identifying not-easily-probe-able devices, mostly on embedded platforms) are a good idea.
I thought you were supposed to add them as an extra file in your finished build image, ie. kernel + rootdisk + devicetree, which seemed like it was just complicating something that already worked. But in fact the goal is for the bootloader to have a hardcoded, non-changing devicetree that it hands out to every kernel it boots. That way, the kernel and rootdisk could theoretically work on more than one hardware platform, and always know which devices to expect, because the bootloader will tell them.
That seems like a good idea. It's basically PCI device probing, only without requiring the actual devices to implement the probing data structures, which means you save money.