Yes, you can mix 2003, 2008 and 2012 domain controllers in a single domain. Ensure your AD forest and domain functional levels are set to at least 2003 before attempting to add a 2012 server to an EXISTING domain (Server 2012 can't deal with a Server 2000 level AD).
When creating a new forest and domain, ensure the functional level is set to match to version of your oldest Domain Controller OS. So if your oldest DC OS is Windows 2003, set it to a functional level of 2003 and you should be good to promote Server 2003+ machines to be DCs.
Note this does not apply to member servers. You can have a 2003 member server(ie: not in a DC role) attached to a Windows 2012-level AD domain without problem.
Using Site-to-site VPNs to connect the various sites doesn't really come into play as long as the VPN connections work, and are fast enough to support replication in a timely manner. If the connection speeds over the VPN are slow, then replication will be slow causing unexpected problems, so you may be better off keeping separate domains, depending on your specific situation.
Perhaps check out this related ServerFault question: Can different versions of Windows Server Domain Controllers co-exist peacefully?
Lastly there was a known issue with mixing 2012 and 2003 DC's, luckily that's been hot-fixed. Check these out: