Most of the discussion here around CLAs is from this point of view: a large organization develops a program, and uses a CLA to steal the work of many small external contributors to the code. The inevitable conclusion is that CLAs are bad and must be rejected. I agree with this conclusion.
However, this is not the only possible situation in which a CLA may be relevant. Sometimes, a corporation can gain a foothold on the software of an individual author just by submitting a trivial patch. In that case, a CLA may protect the individual coder from undue leverage by the corporation.
To have a concrete example, let me share my own experience.
In my research lab we developed a program of scientific interest and published it under the AGPL. A “very large” company was interested in this program, and paid us to continue developing the program (not directly to us: they financed salaries for post-docs and phd students associated to the project, as is common in academia). During the course of this work, people from the company found and fixed a couple of minor bugs in our program, and of course we accepted their patches. The code was still AGPL, but since we didn’t have a CLA, people from that large company became copyright holders of our program.
A couple of years later, another large company was interested in our program, and offered us a similar arrangement. However, they wanted to buy a private license for the current version of our code, and they wanted to pay us a lot of money (in the form of a postdoc salary for a couple of years). Now, we couldn’t sell this code under a different license because it contained a handful of lines by people from the first large company, and these people didn’t work there anymore. Thus, we had to fork our own code from just before the first external contribution, and painstakingly add all the new features and bug corrections (except of course the bugs corrected by those people, which fortunately were easy to contour in another way).
This was a considerable amount of work, mostly useless, that could have been avoided if we had just asked the people from the first company to sign a CLA. In some sense, I felt that by merely submitting a trivial contribution without a CLA, the large company gained a kind of foothold in our software, through which they could exert undue leverage, and this left a very bad taste in my mouth…
Before reading Drew’s arguments, I had a mostly positive attitude towards CLA, due to the experience described above. Also, due to the fact that the GNU project asks all contributors to waive their copyright to them, which makes sense to me (as the FSF is extremely unlikely to “pull the rug” due to its explicit mission). Now, I acknowledge the other point of view, but I’m not able still to form an opinion on whether CLA are universally good or bad.