I love nice enumerable busses -- I just almost never have the luxury of them existing on the embedded platforms I work with. In their absence, I find the existing board/machine file mechanism Linux uses gets the job done and without having to depend on fragile links between data structures embedded in the bootloader or elsewhere and the kernel.
I'd be happy to see improvements to make it easier to maintain board files and such -- they can get a little unwieldy -- but I'm not convinced that a device tree approach actually improves the situation.
I've never worked on a production device (typically shipping between hundreds of thousands and millions of units) where having to compile a new kernel to pick up device-specific hardware support is the major pain point. Certainly I never have a canned, existing kernel that I'm going to just use with no modifications -- power tuning and debugging during stabilization guarantees that we're going to be spinning quite a few kernel builds until things are ready to ship.