I would note that its not surprising that the CLA doesn't make sense to many developers. It wasn't put in place to solve a technical problem. It was put in place to solve legal problems - specifically the problems of patents and
non-repudiation of contributions by corporate employees.
We can discuss how to best solve those problems, but those are the problems that need to be solved.