I think one of the biggest structural problems with versatile protocols like Matrix is that it's all one big spec, and the assumption (and example set by flagship client) is that one client should implement all of it.
This means it's impossible to build focused experiences for parts of the overall feature set (e.g. a calls-only app).
@tbernard I’m really looking forward to exploring the exact opposite end of that spectrum with the Small Web. What happens if you have a very basic extensible message protocol and you enable the community to experiment and extend in a decentralised manner? In effect modeling how natural language and culture evolve.