The technical issues have been a big setback, but you have to realize that the Xbox has been out for twelve years now. If there was a dedicated team of people committed to solving these problems, we would have something TWELVE YEARS after the console has been released.
Instead, for many years it looks like Blueshogun has been the ONLY one working on CXBX development, and even then, he's only been working on it once in a while when he has free time.
It's not like Xbox emulation hasn't made ANY ground. There are several games in the latest builds that are actually playable. But Xbox emulation development just doesn't receive even close to the same priority as behemoths like Dolphin (Gamecube + Wii).
Blaming solely lack of interest is being disingenuous. The technical hurdles are real and should not be ignored, specially when it comes to the GPU.
For consoles like the PS2 and Gamecube, it's always possible to get low-level info about the GPU from leaked documentation, since the graphics APIs for those consoles are nothing more than syntax sugar on top of writing to memory addresses and registers directly: the games are almost always talking directly to the hardware.
The Xbox, however, uses a custom version of DirectX libraries, which does the actual handling of the GPU. So, none of the low-level GPU information relevant for emulation like registers and memory addresses is present in the documentation, since that's off limits for developers. This makes reverse engineering much more costly and time-intensive than on a PS2 or GC, because you basically need to reverse engineer NVidia's binary drivers.
CXBX works by hijacking the calls to the Xbox's DirectX libraries and translating them to Windows' DirectX. The problem is that games that went through link-time optimization have their code shuffled around in a way that makes it impossible to do, because the code for many DirectX calls will get mixed with the game code in the process. The only way to get those games working is to emulate the GPU at a lower level, so that the original Xbox DirectX can be used and tricked into thinking it's talking to the Xbox GPU.
The Xbox 360 has the same problem as the original Xbox: the DirectX library is a black box.
The PS3, on the other hand, has a graphics API that works much like those in the PS2 and GC, so it's entirely possible to figure out where are the memory addresses and registers used to drive the GPU. It might also be possible to use DirectX 11 GPU compute capabilities to emulate the SPUs, but I'm not sure.