There are valid reasons to sign a CLA, though they are vary rare. I believe the FSF CLA is the only one I would ever feel confident signing (because it very strongly restricts what they can do) -- mainly because it means that the FSF has a much stronger case (legally speaking) if it decides to file a copyright suit against an alleged infringement of the work. From my (not-an-American-and-definitely-not-a-lawyer) understanding, American copyright suits are much stronger if you hold a majority copyright over a work rather than only having a very small set of contributions you own.
But really, licensing things under GPLvX-or-later is the best way of handling licensing updates with many contributors.
For example, one possible reason to sign a CLA is if you want to contribute, and the repository owner will not allow you to do so otherwise. It may be that you value contributing more highly than what license later versions of the code use. At least for me, that would typically be the case.
What are you arguing? The fact that someone can’t come along later and relicense the code I wrote is a good thing. Why do you assume I’d be okay with whatever license they want to use in the future?
In the case of MAME, a lot of folks contributed without knowing/caring about a license.
I think if you gave people the option of signing something that allows relicensing of their code under copyleft agreements without needing explicit permission, a lot of people would take it. Tracking folks down who have been gone from your community for years takes a lot of effort.
Finding all previous contributors might be difficult, but the hardest part of a relicensing effort is that a previous contributor may have died. At that point, the copyrights they had are passed via their will (usually to a spouse or child) and now you have to convince someone who might not even be aware of Free Software as a concept to make a decision about their departed relative's views on a topic they knew nothing about.