Just install VS2012 with .NET v4.5 on your development machine for the enhanced IDE features, and install VS2010 on that testing machine for debug purpose.

But doing that causes me to have to debug twice.  Once for .net 4.5 and again for .net 4.0.  All for a .net 4.0 application.

To be fair, even in the time of MFC, bugs show up in Win98 don't necessarily show up in Win2k. If you really concern about the impact of difference in platform / runtime that much, nothing stops you to run a WinXP VM (or physical machine) with all the development tools loaded for testing.

.NET is billed as a "code once run on all platforms" framework.  Part of the reason I use it is so I don't have the same problems native developers have between operating systems.

Having several machines is a workaround.  Something I would (and could) do if I were developing for an operating system that is seeing 5% - 9% market share.

But Windows XP has the most market share out there!  (A whopping 44%)  Of all operating systems on the planet, it has the most.  Workarounds for dropped operating systems should not have to be applied to an operating system that 44% of my and your customers are using. 

I look at the numbers and I am confused as to what Microsoft is thinking.