The x86 CPU doesn't have a full MMU (unless you have a newer CPU with hardware virtualization support), yet software virtualizers like Virtualbox seem to do fine without having a full MMU (i.e. hardware virtualizaton support). Could the same tricks that VMware/Virtualbox use (code scanning for incompatible instructions is the one I know of) be used on the DS to let GBA games run in DS mode without doing CPU emulation?
And with a comparison like that, it still baffles me why any of us ever bought a DS. Think about it. Compare the price of the 3DS to the price of a default iTouch 4g. You get (buying the iTouch) much better hardware for less money. The games (Appstore) are way cheaper, though the DSiWare shop is a step in the right direction. The iTouch is way easier to run unsigned code on, but is a bit tricky in terms of SDK's, so the only reason i could really see to buy a DS, is that it is a nice beginners platform for programming projects
But as stated previously, the DS can obviously not emulate any modern devices. Sucks, but one should have bought the iPod if one wanted the capabilities of that product.
Keep in mind that the DS was released way before the iPhone/iPodTouch. And frankly, I can hardly play any games on my iPhone because the lack of physical buttons bothers me too much. Only games specifically designed for touchscreens are playable.
You are right about that DanTheManMS. It was released way before, but i still think users were ripped off, at least when the DSi came and now with the 3DS too. But you are right, some might have problems with the touchscreen, i have very small hands myself so i didn't think of that. Physical buttons should not be that expensive though.
Power of the hardware isn't as important in a gaming machine as what is done with it. An example is the popularity of the PS2 compared to other main systems last gen, despite being the weakest of the three. While I'm sure the i systems have some decent games for them at this point, I'd prefer the library available to me on the DS.