I've done it in Ruby and all the DS games except for SoulSilver(although I would have, had I been able to get my hands on a Totodile), and of course in Yellow. The main reason being, once I'm finish doing everything in the game, I usually don't play it again unless I decide to restart the game a few years later, so it's easier for me to raise them during the main game for PokeDex filling purposes.