This is an interesting point and does sound good in theory, although in practice it's just the for-profit proprietary companies who are doing the forking and expanding, and then making a ton of money and not contributing anything back to the reference implementation.
I do also dislike the CLA, but I'm torn because if anybody should be making the money from these custom extensions/implementations, it should be the company who does 95% of the core contributions, and I don't see a way to do that without the CLA. Not that my opinion matters as I'm not connected at all to Element or any other players, but just generally speaking I'd love to hear potential solutions to the problem that don't require a CLA