I haven't run DNS+DHCP where Windows was the server, mine's the other way around. Perhaps you should post your /etc/dhclient-*.conf script. A client can send and request various information, much of what's possible is optional. Some of it contrary (e.g. with Windows, I found ticking the register with DNS option caused it to not attempt to do, unticking caused it to do so).
Right now, it looks like: send fqdn.fqdn "engr.ourdomain.local."; send fqdn.encoded off; send fqdn.server-udpate off; I've tried all 4 combinations of off and on for the "encoded" and "server-update" options. Currently, my /etc/sysconfig/networking/devices/ifcfg-eth0 has the DHCP_HOSTNAME=... line commented out, hence the lack of a "send hostname" command above. Again, I've tried fully qualified domainnames (with and without the trailing period) and the short name ("engr") for both the DHCP_HOSTNAME and for the "fqdn.fqdn" option. Right now, I'm planning on grabbing the sources for dhclient, adding some debug statements, and trying to learn what's going on. --wpd