How is a CLA any different of a legal agreement than agreeing to a license? The CLAs I have seen basically boil down to the project maintainers maintaining ownership of the code, ability to adjust the license if desired, and protect them from people contributing code that the contributor doesn't have the rights for. I have seen projects suffer from single contributors stubbornly refusing to budge on relicensing, even…
A CLA is a legal contract between two parties. An open source license is a general grant of additional permissions under copyright (and sometimes some additional promises regarding things like patents), provided that the person using those permissions (to make and distribute copies) adheres to certain requirements. (I am the author of the linked-to article.)
A normal CLA is just making things that are implicit when contributing code explicit. It is a clarifying statement and agreement on who maintains control. So if the complaint is that CLAs force you and your company or institution to be explicit when contributing code, then I'm not sure I understand the complaint.