IE9 not supporting XP at least had some sort of justification, regardless of whether it was a good decision. Vista was a large platform upgrade/rewrite, and they mentioned particular features IE9 was using that they didn't want to bother re-implementing for XP (graphics stack, security). But Win7 is not such a drastic upgrade over Vista (architecturally, anyways). So what's the explanation for this?
The explanation is probably, "We want to sell licenses for the latest version of Windows". Microsoft played the lock-in game too well and they can't even get their customers to upgrade to new versions of the same software. Since Windows is a one-time purchase, if no one is buying the new versions of Windows, Microsoft is making much money off of these new versions.
Upgrading to Windows 7 to get IE 10 seems like a classic "You're doing it wrong"!