That's why game developers suggest you to learn Assembly as well, if you want to code next-gen games.
Honestly, assembler is moot when dealing with next-generation consoles. If you're making games, most development studios farm out to a 3rd party middleware solution like CRI, RenderWare, Unreal Engine, Source, etc. At that point, most, if not all the optimization is really taken care of for you. The only things I'd see learning assembler for would be if you're working with the hardware, at the nitty gritty... working for one of these middleware solutions, or writing your own engine. Assembler also is way harder on next (well, fuck it, this) generation consoles, since dealing with cross-thread communication and shit like that (since both the PS3 and Xbox 360 are essentially multi-CPU) can get extremely frustrating with assembler code.
Not only this, but x86 assembler won't help you code for a PS3, as it does not use X86 hardware. Assembly languages are highly hardware specific and will only work on the processor class they were written for. That is fine on PCs, as they all use x86 compatible hardware, and possibly for the xbox, which is almost x86 (just a cut down processor I think from memory) but the PS3 has a completely unique processor. This means you would almost certainly have to learn a different assembly language for every new console.
You're actually right. C++ is designed to be efficient and easy for debugging. MASTERING C++ is hard. But learning it is relatively easy.
I beg to differ, but for a 1 year old emulator (2.6a is almost 1 year old), no$gba has a fantastic compatibility rate.