evildictaitor, Windows XP SP3 is supported until 2014. So this is in fact the first time VS drops an OS before it's support ends.
No it's not. That's extended support, which means Microsoft will still ship security updates for it, and for a few thousand dollars a year they'll give you a phone number where they'll tell you how to turn your computer on and off again.
XP stopped being in mainstream support in 2009, so Microsoft product teams don't have to test their new products on it (so far as Microsoft is concerned, XP is dead). http://windows.microsoft.com/en-us/windows/products/lifecycle. Supporting XP isn't broken on purpose, but it's not actively tested against - and the first guy who imports a function that isn't there on XP will suddenly break support for XP.
It's not Microsoft's job to support your customers being on operating systems that Microsoft doesn't support and doesn't want them to be on. That's why Microsoft won't let you compile your C++ into ELFs for Linux or Mac-os for Mac. Microsoft really doesn't want your customers to be on XP anymore - and it wants that much more than it want's you to buy a VS2011 licence, no offence.
If you're a Microsoft employee (which I think you are), suggest someone from the CRT team to post on Uservoice to clear things up about this situation.
The team is aware of the concerns created by this decision. However, as of now we are not in a position to comment on fixing this.
Thank you, Visual C++ Team
Amusingly the first comment refers to my comments on this thread, but I think the C++ team are referring to this post:
Visual Studio 11 Beta does not support targeting the Windows XP platform. As a result the C++ runtime libraries (CRT, MFC etc.) that come with it will also not run on Windows XP. If you already have Visual Studio 2010 and use it to build solutions that target Windows XP, then you can still install Visual Studio 11 Beta and continue to use the tool-chain (compilers and libraries) from Visual Studio 2010. This will allow you to target Windows XP while still taking advantage of the new productivity features in Visual Studio 11 Beta
Win32 API in Vista+ are now included in Dev11 CRT, mainly to make use of some newer functionality.
Also, In Dev11 we've changed our internal logic for locale supporting and locale-sensitive functions (such as setlocale, printf, atoi, ..) to use locale names instead of the old LCID. XP doesn't have APIs supporting locale names.
Another reason for using some newer API (not present in XP) is the use of One Time initialization APIs for lazy initialization, which provides some memory savings for the CRT.