The fact it was limited to ATI limited it's usefulness. I don't think most developers like the idea of adding features that only work on certain cards. As for being vista and onwards, Vista's kernal is quite different from XP's and directx was coded for the vista. Microsoft has stated many times that various options used…
The DX10 / DX9 comparison screens are quite significative of what can't do the old DX9... DX10 code is practically new, a friend learned DX9 years ago, and when DX10 appeared he needed to learn all again "practically". He said me that it was like to learn a new API. That's an added effort programmers need to do gradually…