I'm happy to ask the IP lawyers in my family for some opinions on this but I think what we are doing now is fine.
As Joachim already noted, it's a bit late to switch course for GHC; you'd have to track down every past contributor. (I've been involved with projects that needed to do that; if at all possible, avoid it.)
The reality, as I understand it (note that I Am Not A Lawyer(tm) but have experience with projects that have had to face the question), is that there's complex interactions between copyright law and contract law (not to mention questions of how contract law affects contributions to an open project). And both have a certain "valid until proven otherwise" aspect, which often makes it wisest to not change what's already working well enough --- especially since even asking a lawyer "on the clock" can potentially have legal implications on the whole project (but only if someone actually challenges in court and brings it up). As a result, the FUD's kinda built into the legal structure. :/
(My earlier response is not incompatible with this; the question I was answering was why a project might go with a CLA. In reality, whether the answer is *relevant* to a project is certainly open to question. One difference between the situation with GHC and the situation with Scala or Perl 6 is that the latter are also defining a language specification, which may have implications if there is a plan to submit it to an official standards body at some point. For ghc, that rests on the language committee, not the GHC developers.)
If it really bothers you, probably best to ask someone like the EFF. Almost certainly do *not* formally ask a lawyer (informal is fine) --- they are going to concentrate on the worst case, mainly because even asking for a formal evaluation suggests that there is a need to worry about the worst case. Otherwise, leave well enough alone.