Given that IE 9 builds on top of a lot of new things that have been introduced with Windows 7, most notably rendering-wise (DirectWrite, Direct2D), I guess it certainly is a technical reason. Replicating that on XP would either need backporting those APIs which is not going to happen because XP is out of mainstream support, or developing abstractions or fallbacks within IE which would need more resources within the IE team.
Sure, you could use suitable abstractions from the start, but why bother for an OS that's not supported anymore? Other browsers went that way, because they often run on multiple OSes, but you probably wouldn't expect a Linux version of IE anytime soon either.
That's interesting. I was aware of some of the security APIs used in IE9, but in those cases I always thought that it was still essentially a business decision not to provide an XP-compatible version.
IE9 is supported on Vista as well as 7 though, and it seems that they had to backport some APIs to allow this (see KB2117917). I don't know enough about the underlying code to know how hard it would have been to do that for XP, but I can definitely see that it could be a significant effort.
That is not the MS native implementation which requires the new driver model. MS ditched the old DirectX redists after 9.0c in 2004 and since then only updated D3DX. Sure there is the Platform Update for Vista, but that is only possible because Vista already have the new driver model and it uses a completely different installer.
Sure, you could use suitable abstractions from the start, but why bother for an OS that's not supported anymore? Other browsers went that way, because they often run on multiple OSes, but you probably wouldn't expect a Linux version of IE anytime soon either.