In our environment we have virtual Domain Controllers in additional to our physical DCs. We have not encountered any issues. You just want to confirm that the time on those VMs are not synchronized with the ESX host and are with the other DCs.
You can probably virtualize most if not all of your DCs. In my environment we don’t have any physical DCs at the moment. Now the catch to this is if you use Hyper-V in a cluster you need to have at least one physical DC. If you are using VMware (ESX or vSphere) then you don’t need a physical DC at all.