For example, the client knows which channels it needs, so why not let the client decide which channels to subscribe to over a single WebSocket connection? With SSE, you end up having to do this channel management and keep track of which user is associated with what SSE connections on the back end since the user cannot just subscribe to channels on-demand. If your system runs on multiple processes or hosts, figuring out which process/host a particular user is connected to is a nightmare and forces you to create clients on the back end to aggregate messages for specific users and then publish to the correct SSE connection. It moves all this domain logic to the back end which doesn't need to exist and complicates access control.
I have no idea why this "let's micromanage everything data stream for each user individually on the back end" approach became so popular while the alternative approach of end-to-end pub/sub is almost never used when it results in a much simpler, more secure system.
And why would latency be lower with HTTP requests + SSE than with websockets?