There are two related but separate issues here that need to be considered:
1. Relicense to AGPLv3
2. New CLA in place for contributions.
For a project like Matrix, the move to AGPLv3 seems clearly a good one. This is not just a library that you add to your app, it's a product in and of itself, and it's been getting abused by proprietary companies who are robbing the ecosystem. From the blog post from Element[1][2]:
> Today we have arrived at a crossroads. We have succeeded in making Matrix wildly successful, but Element is losing its ability to compete in the very ecosystem it has created. It is hard for Element to innovate and adapt as quickly as companies whose business model is developing proprietary Matrix-based products and services without the responsibility and costs of maintaining the bulk of Matrix. In order to be fair to our customers, we need to be able to put more focus on them and their specific requirements.
This is a major and legitimate problem that could undermine the future of the project, and lead to a world where proprietary versions are king and open source lags behind. The AGPL is a good solution to this problem IMHO. When a project gets to a certain scale, GPL-style protections become important to ensure contributions are being returned instead of hoarded. The Linux kernel being a class case study.
The CLA however, I'm not a fan of generally speaking. It appears to exist so that Element can sell proprietary licenses/versions of Matrix, which I'm less sympathetic too. However, without Element, Matrix would not exist and generally they have been good stewards and provide 95% of the contributions (per their claim in the blog post). To me, they deserve benefit of the doubt here.
[1]: https://element.io/blog/element-to-adopt-agplv3/
[2]: HN thread: https://news.ycombinator.com/item?id=38162275