For the laymen out there: ROM is READ ONLY MEMORY, and even though you can write to the SMC's, they are basically read only during gameplay. And they don't read as quickly as GBA advance cartridges do. So in order to emulate a GBA game, you'd have to take more of the game off of the ROM (card) and hold it in the RAM to maintain accurate gameplay. RAM is RANDOM ACCESS MEMORY, meaning it can quickly write/erase information to itself. NOTE: SMC's, flash cards, and other game cartridges aren't actually ROMs, they're EPROMs. Meaning ERASABLE PROGRAMMABLE READ ONLY MEMORY, and you can guess what that means.
On with the suggestions: Most games are fairly segmented: Opening sequence, menus, actual gameplay, separate levels/stages, and cut-scenes. If the emulator was designed to only load one segment of the game at a time into RAM, there would be plenty of space left to be used for increasing the quality of the emulation. This MIGHT mean that the emulator will have to be programmed with specific segment data for each game you want it emulate (so the file size might get a little big), but I think we all agree that's a worthy sacrifice to get a perfectly smooth emulator. Besides, it wouldn't take long to increase it's library of supported games, and would guarantee the game's would run perfectly in the emulation.