I think some of what you say about XvBA could actually be said of VDPAU when it came out - why didn't they just use the existing VA-API stuff? But it seems silly to go from 2 API's up to 3 when it isn't needed.
I think there's a little confusion going on here about what VDPAU actually is. It's an API, which can have any backend implementation you want to give it. So NVidia does it by accessing their custom hardware, and Via does it by accessing their hardware, and Nouveau can do it by using shaders. Or reverse engineering the binary drivers. Likewise AMD could do it by using shaders (open-source) or UVD2 (binary). The XvBA API would be the same type of situation for anyone who wanted to implement it - dedicated hardware for the binary drivers, and shaders or reverse-engineered code for the open source ones.
Regarding the AMD hardware using shaders for acceleration: that's how UVD1 cards did their video acceleration, but UVD2 cards have the same type of custom decoding hardware that NVidia uses. The original r600(HD2900?) card was UVD1, but I think all the other r600 cards and definitely all the r700 cards have dedicated hardware in UVD2.