For as long as I've been using a DHCP server on Linux or even FreeBSD (all come from ISC if I recall correctly), it seems that it just doesn't know what to do with DHCP requests when the Internet goes down. It doesn't matter if the gateway is on the same machine or a different router, or if the router keeps working but the Internet has been disconnected, the DHCP server simply stops assigning IP addresses.
This is highly disruptive to our office, where we have workstations that need to connect to our internal customer database, even when we're offline. Never mind what happens to our Cisco IP phones when they can't get their DHCP leases. Sure, we can't make any calls through our SIP trunk when we have no Internet, but the phones should at least connect to the PBX.
Is there a fix for this problem, or is that "just how the DHCP server works"?
That's REALLY not how it works at all, there's zero reason why any form of upstream routing issue or misconfiguration would lead to a DHCP problem. Maybe if you were like a home user or a two-man business using the cheapest of DSL router then perhaps I could see why it may cause problems but in any other scenario these two things have no impact on each other.
I suggest you call in a pro sysadmin or network admin to get this fixed once and for all as I suspect there'll be other issues about if you're seeing this problem.
Not how it works on my end. Is the info that the server is pushing possibly pointing to an external resource that is vanished due to the lack of internet at the time DHCP is trying to serve the request?
Example, is the gateway that you are pushing, reachable when the network is down? How about DNS server being pushed?
Best guess is that you've got FQDNs in fields where DHCP only pushes IPs, so DHCPd is doing the DNS lookup for you in the background. If the DNS configuration on that server is to loopup externally then it would fail anytime the "Internet" is not available.