I agree so much, really...we shouldn't even need it. It should just be a dialogue box that appears after a trainer NPC has said their normal text: "Do you want a rematch? >Yes >No"
And they shouldn't even change the levels of the NPC's Pokemon either, so you can actually train a low-levelled Pokemon against other low level Pokemon.
Just set it so they can't give out money again and save that for the gym leaders/rival battles etc.
I wish GameFreak would give some kind of emphasis on the early/mid level stages of a Pokemon. It sounds strange but the fact is once you get your first Pokemon up to around about level 50-60 training other Pokemon just becomes switch out -> switch in -> get exp. or even just using the exp. share.
Once you get one Pokemon to a higher level, you basically just race your other Pokemon up to that level too. I don't feel like there's a lot of time to enjoy Pokemon at their earlier stages, especially once you've beaten the league.
I wish there was some way to still make level 20-35 count. I find that range to be really fun to battle at.