A CLA isn't necessarily a copyright grant. The Apache one for instance doesn't have you assigning copyright to the Apache foundation. It's just signing that you actually own the works in question.
I have issues with the GNU assignment. It means that we're reliant on future owners of the GNU project to not ever relicense the codebase. A single owner is a single point of failure.
I've heard that sort of thing called a developer certificate of origin or something along those lines.
The FSF is arguably something a bit unique. But most of the point of a CLA is to give a company/organization ultimate control over a code base so that it can dual license, etc.
I have issues with the GNU assignment. It means that we're reliant on future owners of the GNU project to not ever relicense the codebase. A single owner is a single point of failure.