[avoing legalese and legal jargon] What practical implications CLA (Canonical Contributor License Agreement) has to a developer who sign this agreement ?
But some people seem to misunderstand what "relicense" means. It means that the next version they release after relicensing is under the new license (or proprietary or whatever). The version before, the one last released under GPL, is still under GPL and nothing in the world can take it away from it. That version that is under GPL, anyone is still free to fork and take up maintaining, as long as they keep their fork under GPL.
You cannot close down GPL code, CLA or not, that's the entire point of GPL. For that matter, anyone can relicense their code, as long as every rightsholder agrees to the relicensing, just the same as Canonical. All the CLA does is it gives them the power to relicense without asking other parties - basically, it's the same as any GPL project that has only one developer, where that one developer can decide to relicense at any time at his/her own discretion. But like I said, the relicensing does not affect the code that was released earlier before the relicensing.
The CLA is kind of a red herring in this case - there are other, much better reasons to be against Mir...