The HTTP/3 spec states that
because the parallel nature of HTTP/2's multiplexing is not visible to TCP's loss recovery mechanisms, a lost or reordered packet causes all active transactions to experience a stall regardless of whether that transaction was directly impacted by the lost packet
While I understand this in the context of cumulative ACKs, I had assumed that selective ACKs would prevent a stall as they allow
the receiver to acknowledge discontinuous blocks of packets which were received correctly
But clearly this isn't the case as per the quote from the HTTP/3 spec above. So, my question then is why does head-of-line blocking persist even with discontinuous acknowledgements?