Firstly it’s worth noting that from Windows 2008 clustering is supported using separate subnets and VLAN’s although separate subnets has considerations regarding DNS and recovery speeds.
SQL Server 2008 and below does NOT support subnets and MUST be configured with a VLAN.
In SQL Server 2012 you can now configure SQL Server failover clusters across multiple sites without implementing the stretch V-LAN technology.
Exchange 2007 and above does support subnets using CCR andor DAGs.
If mirroring SQL Server over <1ms I would recommend asynchronies Mirroring (this requires Enterprise edition).
SQL and Windows Information
Requirements and Recommendations for a Multi-Site Failover Cluster http://technet.microsoft.com/en-us/library/dd197575(WS.10).aspx
SQL 2012 subnets: http://technet.microsoft.com/en-us/library/ff878716.aspx#VisualElement
SQL 2012 Features: http://technet.microsoft.com/library/cc645993(SQL.110).aspx
MultiSubnetSupport: .Net 4.5 http://msdn.microsoft.com/en-us/library/hh205662.aspx
Windows 2008 cluster Fix: http://support.microsoft.com/kb/2494036
Mirroring Impact: http://www.networkworld.com/community/node/56351
SharePoint Information
SharePoint DR types: http://technet.microsoft.com/en-us/library/ff628971.aspx
SharePoint Availability: http://technet.microsoft.com/en-us/library/hh913923(v=office.14).aspx