For someone who complains about web stuff so much, it's weird that you don't have a better understanding of the technology. No amount of pipelining can fix HTTP/1's request-per-connection model enough to make it competitive with HTTP/2.
I would say I have a pretty good understanding of Ethernet, IP, TCP, and also HTTP, having written implementations of that full stack several times -- including pretty sophisticated ultra-low-latency tricks.
HTTP/2 implements multiplexing on top of TCP, which is just plain stupid. TCP is not meant to be used for this, and doing this is actively harmful; the correct thing to do is to establish multiple TCP connections. That sort of thing is not surprising since most of web and cloud tech is all about re-implementing low-level components on top of inadequate high-level abstractions.
The main reason to use HTTP/2 is simply that when a server provides both 1 and 2, the backend quality will typically be much better on 2.
Exhibit A
> I would say I have a pretty good understanding of ... HTTP
Exhibit B
> HTTP/2 implements multiplexing on top of TCP, which is just plain stupid ... the correct thing to do is to establish multiple TCP connections
It's incredible how many servers can't do pipelining when queried with HTTP/1, but do it fine with HTTP/2.