because REST is stupid
REST is request -> response, single connection, one direction only, which is a very limited way to model messaging .
There is more than one communication mode and bidirectional messaging is a thing.
REST also offers no control whatsoever over the communication channel, so you are stuck with the configuration set on the server side
which might or might not be correct for your use case
See RSocket for an example of a message driven protocol which solves most of the shortcomings of REST
on the bright side REST is also stupid simple
which is why is so widely deployed, it doesn't require thinking
> response, you've essentially circled back around to clients having to use a client with REST-like
no, because you did not block there waiting for the timeout which defaults to 30 seconds for HTTP
and even if you abandon on the client side, the server will still process the request, there's no way to abort it once it's been started.