XP's multi-core and multi-program capabilities always felt a bit clunky. I remember Vista being nice and smooth about it, and of course Win7 is too. Plus if one program goes to hell in XP, the whole OS goes with it generally. In Vista and Win7, if a program starts to hang up, it doesn't screw up the rest of the OS with it. Vista also helped to push 64 bit out the door, which XP was not doing, and thank God for that.
As for DX10 and DX11 on XP, I'm pretty sure they could've done it. MS has claimed that the APIs are reliant on the way memory and data is handled in the newer OSs, which kind of makes sense, but was a bit of an excuse not to release DX10 on XP. Either way, I think we got a better end of the deal by getting the extra optimizations and features of the newer OSs. Yes, Vista had it's issues, especially if you were a system builder dealing with pre-Vista hardware, but when Win7 rolled around, everything was about set in place since Vista drivers worked in Windows 7. I had my experience with 64 bit driver issues when I bought Vista for my desktop at the time (a custom build), but the first computer I bought with Vista 64 in late 2008, an Asus gaming laptop (I build all my desktops though) ran the OS perfectly. The Nvidia graphics drivers ran beautifully on it, hell everything did.