Peter,
thanks for adding the nfs root-path by dhcp support to mkinitrd.
Unfortunately there are some limitations and problems which may occur. I'd like to discuss them with you and the devel list.

My original patch evaluated the kernel command line like the kernel does. (Documentation/nfsroot.txt)

Setting root=/dev/nfs caused the initrd to read the root-path option from the dhcp lease.
The way you did it was looking at the mount-options of the root-filesystem in /etc/fstab. If the "dhcp" mount option is there it will read the dhcp lease file in the initrd.
I like this way, but the problem we're having is the following.
Setting the mount option "dhcp" in /etc/fstab causes the network script to fail as "dhcp" isn't a supported mount option.
Remounting root filesystem in read-write mode: Unsupported nfs mount option: dhcp [FAILED]

And as a consequence /etc/mtab doesn't contain the mounted root filesystem. The reboot will then fail as it tries to shutdown the network interface on an NFS root filesystem!

One workaround is to create a separate fstab with "dhcp" mount option. Then we pass this fstab as an argument to mkinitrd like: mkinitrd --fstab=fstab ...
Another workaround would have been to pass the option by using --rootopts . This isn't possible because of this bug: https://bugzilla.redhat.com/show_bug.cgi?id=356371

Does anyone on this list have a suggestion about how we can improve / solve this issue?
Luckily there is a workaround available.
Thanks for your comments.