Let's be clear, the Apache CLA is not a copyright assignment, the original contributor keeps the copyright. The CLA says that you grant them a perpetual, non-exclusive license to the contributions, that you give a royalty-free license to any patents that cover the contribution (in the context of that contribution/project only), that you own the contribution and are allowed to contribute it (a bit like the Linux kernel Certificate of Origin process).
None of this really seems crazy to me, whether it is to a foundation or a commercial entity. The patent license thing is basically just saying you can't contribute code they can't use unless everyone gives you money (duh). Licensing your contributions is what you do when you give a GPL project a contribution under the same license, it's just saying it explicitly. The rest doesn't really give them special powers, but just cover their asses in case you're contributing "stolen code" or something.