I had a situation yesterday where there was a run on my DHCP addresses. It was expected and i had carved out a range to handle the additional requests. However, Sonicwall didn't hand out all the available addresses in the DHCP range. the range was .20 to .40 and it would hand out .20, .21, .22, .23 but .24 was not issued.
It skipped on several addresses to the point where i ran out of IPs (50 addresses in the range; only 32 connected but out of addresses). I checked the lease time and it was only set to 10 minutes. When i ping the offending IPs they don't ping back so I assume the IP is available..