If you wanted to do a GBA/NDS port, you'd be looking at making a single ROM file for use in an emulator. Using SDL means that you'd be using a version it that would compile right into your ROM file. Legolas knows a lot more about this.

As for distribution, I know that if you are giving it out as freeware you're more than ok to do that. Selling it is something of a gray area though. I recommend reading up on how this is done by other companies that don't want to pay for Nintendo licenses. As mentioned in another thread, Nintendo has a checkered pattern of suing gaming companies that have sold such games. I'm unfortunately not up-to-date on the hardware aspect of this as GBA/NDS games to be sold in a more traditional/practical fashion would require physical packaging. (Shipping to customers would be relatively cheap however! )

As for the GP2X, it's more like making a Linux port, but with a smaller screen and fixes set of controls. Paul Nicholls would be best able to answer this question for you.

I do know that SDL thrives on this handhelf system. And the alternative to this is most likely OpenGL|ES.

I think your first challenge with GP2X is figuring out if all the essentials are ready for use;

:arrow: Reading controls
:arrow: sound
:arrow: file system
:arrow: graphics(but I'm sure this is easiest)
:arrow: packing of game into format that the GP2X will be able to load and run.