heh, I've been an exchange admin for 7 years and running my own exchange at home (MSDN versions) for about 5 years. I learned long ago from both work and home experiences to not run anything on an exchange server other than exchange (except of course for the obvious things like MOM agents or Exchange AV).
I currently have 2 physical machines running VMWare Server and run separate images for AD DC's (1 on each machine) and Exchange. When I get around to rolling out E2K7 I'll run a separate image for the Edge server and one for the hub/mailbox/CAS (though I might even run CAS on it's own image). I also run my linux DNS/firewall servers on images from these machines (dual core rocks!). I try to have servers/images duplicated on both physical machines in case the hardware on one eats itself, which has happened several times in the past 5 years.
I think it's a great idea for the exchange devs to actually run exchange at home, to get a feel for installing and maintaining an exchange environment. All product dev teams should have to go through something like this if you ask me, it can be a real eye opener to actually have to use the product you make.