This is a tricky one, it depends on many factors such as:
- How many users you have on each site
- Do you have any security concerns for the remote sites?
- Do you have any administrators on the remote sites or not?
- How fast is the WAN speed for each site?
- How frequently you replicate AD between each site, and how big is the replication itself?
These questions should help you design a strong AD network, for a starter, I would recommend the following guidelines:
- If security is an issues on the remote sites, then use only RODC instead of full writable DCs
- If the login times are slow on remote sites, then use universal group membership caching
- If you have admins on the remote sites, then delegate administration to them
- If the WAN networks are slow, then try to change the replication topology to happen after working hours
- If both your virtual DCs are hosted on the same physical host, then I would recommend to change that since if the host fails, your entire AD network on the remote site fails.
There are more to write, but those are the things that just came to the top of my head.
Edit: Having one GC on each site is okay, here are further reading about it: http://technet.microsoft.com/en-us/library/cc728188(v=ws.10).aspx
Hope this helps.