It does work the way I said: the boot loader passes in a machine type number. But the kernel still has to have a built-in definiton of each machine type.
The current discussion is about having the boot loader pass in a fuller machine description (the Device Tree). This may simply be tacked onto the end of the kernel image in some way, so there is no need to modify existing boot loaders.