It has to do with the way the kernel mounts the root filesystem when you do not use an initramfs.
It translates the root=/dev/sdXY on the command line to a major and minor device number.
Then it creates a temporary device node with that major and minor number as "/dev/root".
Finally, it mounts the root filesystem using that temporary device node.
This is all done by the code in the "init" folder in the kernel sources.

Ideally, someone would modify the kernel code to use /dev/sdXY as the temporary device node name, but that is probably more work that it seems.