This clears up the questions I had on duplexing.
Our p2p operates over TCP which is full duplex, but the semantics of the protocols are more like half duplex, where there is a request/response, even though either party can initiate and one party can simply broadcast to the other (like tx announcements).
HTTP is the same, I don't see any reason the implementation would be affected. But interestingly, WebSockets can also be implemented on the same stack, since it's just a different semantic. IOW we can broadcast from a notification subscriber over the socket, and the client can also spend requests.