What it all has to come down to is technical fact; not "if you believe, it will be emulated at full speed" like some have stated. The GBA has a beefy processor-- an ARM7TDMI at 16 MHz (the Z80 @ 8 MHz is not engaged when playing GBA games and is only active for GBC/GB compatibility mode) and a fancy video subsystem with transparency, scaling, rotation and other neat effects and capabilities. However, this video functionality is about the only feature the GBA utilizes that is not run in software on the ARM7 processor.
Beefy is the last word I would use for the GBA's processor. Crippled is a better term. Big N did just about everything possible to slow this thing down. Realisticaly, instead of the prescribed 90-95% mips to megahertz you should get out of an ARM, the GBA is going to get about 2-3 mips. So far I have the gp2x at 177mips at 200mhz, about 60 times faster than the GBA. There shouldnt be a problem executing the GBA _code_ at full speed.
You are right on the money though, its the video hardware that is the issue. Its the only thing that saved the GBA in the first place (with its crippled processor). It shouldnt be too hard to take an emulator (with source), modify it to find out how many layers are being used, etc. Find a game that takes full advantage of the video hardware, lost of layers and transparency, extract the tile and other screen information for a single frame or handful of frames. Have the gp2x emulate the rendering of that one frame over and over again. If it cant do it as fast as the gba, then we have a shot at emulating at full speed, if not then we cant emulate at full speed with this approach. That doesnt make the project a bust, just means that someone has to work on the video side. It sounds like a fun project actually...
I say crippled because no cache, no write buffer, mostly 16bit busses with wait states. It wasnt the ARM that crippled it but what big N put around it. In fact the ARM helped save them with thumb mode, even though it takes more instructions to do the same task it can execute on every (set of) memory cycle(s) insted of every other. If they had spent only a few cents more per unit (at a cost of a few dollars more per unit to us) that platform could have been much faster. Of course then there may not have been much interest in the gp32 and then the gp2x if the GBA had any decent performance. To put this into perspective. The 16.75mhz gba running in thumb mode, no cache, no write buffer, around 3mips with a typical gcc 3.x build. The 200mhz gp2x running in arm mode, no cache, no write buffer, around 3 mips with a gcc 4.x build. From that perspective, yes, the GBA has a beefy "processor" compared to the gp2x if it can match performace with 1/12th the mhz.
Whoever is working on this project, I highly recommend you start with a mode 7 game. After weeks or months of work on a tile based game you may be so dissapointed in the performance that you just give up.
Dont get me wrong, I am eager to see this emulation/translation work. Sounds like a lot of fun, if someone had not already started I would want to start a project like this...Going from ARM to ARM opens new possibilities that you dont get when going from dissimilar platforms.