Not sure if this is intentional or not, I call it a “reproducable undesirable feature”.
If an interfaces uses DHCP and successfully acquires a lease, but the DHCP server goes away and is unreachable at the end of the lease, the IP address is lost. This is expected behavior. However, the default behavior is to simple give up, and never try again.
if(!ifstatus(IF_ETH0)) ifup(IF_ETH0); // seems to fix this frighteningly well…