RFC2131 does not specify that a client is required to release it’s address upon shutdown or reboot.
Rather, section 4.4.6 of RFC2131 states the following:
“If the client no longer requires use of its assigned network address (e.g., the client is gracefully shut down),
the client sends a DHCPRELEASE message to the server. Note that the correct operation of DHCP does not depend on
the transmission of DHCPRELEASE messages.“
I conducted some tests with Windows Xp, Ubuntu 8.04 and Mac OS 10.4 DHCP clients with a Windows 2003 DHCP server and noted the following:
Windows Xp
An Xp client does not release it’s DHCP address when shutdown or restarted. Upon restart, Xp broadcasts a DHCPRequest if it’s lease had not expired.
If the lease has expired, the client will go through the normal DHCPDiscover process. (Discover, Offer, Request, Ack)
Ubuntu (Hardy Heron)
Unbuntu 8.04 will send a DHCPRelease when shutdown. This immediately returns the address to the DHCP pool and makes it available for use by another host.
Mac OS 10.4
My Macbook Pro does not release it’s IP address when shut down. However, when the OS is restarted it goes through the normal DHCPDiscover process rather than
broadcasting a DHCPRequest in an attempt to obtain the same IP address.
When an address is not released, it’s still marked as in use by the DHCP server until the lease expires. This normally doesn’t cause a problem. However, if you’re managing a small pool of addresses and/or a large number of transient clients, returning addresses to the pool when a client leaves the network is beneficial. If you’re running a Microsoft DHCP server and managing a large number of Windows clients, this can be accomplished with combination of shorter lease lengths and modifying a DHCP server option.
On your Windows 2003 DHCP server, open the DHCP MMC Snapin, go to the scope and right click on Scope Options. Then click on the Advanced tab.
In the Vendor Class drop-down, select Microsoft Windows 2000 Options and then select the corresponding check box for option 002, Microsoft Release DHCP Lease On Shutdown Option. Apply the change then click ok.

I haven’t yet found a way to force Mac OS to release on shutdown. However, based on a few older documents I found it appears that “DHCP release on shutdown” was normal behavior in Mac OS 9.0 and earlier, similar to the way that Ubuntu 8.04 behaves.