Matrix is currently using JSON+HTTP because it was the easiest to start with, but it's not something that the protocol actually depends on. Matrix is more of an RPC system, so the important part is the definition of the methods and the message. You could use any other transport and framing protocol... As they have actually done in experiments (see https://matrix.org/blog/2019/03/12/breaking-the-100-bps-barr...)
The thing is, with widespread high bandwidth internet and little funding they have to have priorities and while minimizing the number of bytes sounds interesting, it probably isn't more important than say smoothing out the user first experience
Indeed, definitely not everywhere in the world. But they're probably prioritizing the crowd that at least has access to a few hundreds of kbps, because they're the one who have the most chance to bring any money.
The thing is, with widespread high bandwidth internet and little funding they have to have priorities and while minimizing the number of bytes sounds interesting, it probably isn't more important than say smoothing out the user first experience