Why I am not fond of DHCP in lab environments
Using DHCP to assign IP addresses is pretty popular in environments with lots of machines. You'd think that student labs, full of generic machines, would thus be a great environment for DHCP, but actually I disagree; I believe that (normal) DHCP is not a great match for a lab environment.
The problem with DHCP is that it ties the IP address to the wrong thing. In a lab environment you don't want a machine's IP address to be tied to its hardware; you want its IP address to be tied to its physical position in the lab, so that you can actually find it without having to search through the whole place.
(Given that automatically determining a machine's physical position is hard, I'd be happy if I could dynamically assign IP addresses based on what switch port a machine was plugged into; student lab wiring is usually pretty regular and static, and can thus be mapped easily into a physical position. And in theory you could get this information from sufficiently intelligent switches, and do it on the fly to make up DHCP replies.)
While you can do this with DHCP, you're doing so indirectly, which means that you can't move machines inside a lab without updating your DHCP configuration. Given that you have to do something when machines are moved around anyways, I prefer just giving machines static IP addresses and updating them directly when things move; it has less moving parts.