base on my understanding. chroot will change u current environment to specific directory and treat that as if you new root.
but rdev is to set parameter into image and has effect next time when boot. for example like ramsize, rootflags, both of these are used in boot. you can read /src/linux/init/main.c and do_mounts.c for detail.
am i wrong? i am not quite sure.