Can you be more specific? What technical drawbacks are relevant? It's certainly not literally polling any more than a websocket so what do you mean? Long running websockets are also hard to balance for the exact same reasons. Much harder in fact because you can't use a per request LB.
I believe grpc only uses the http2 frames, which are bidirectional. Double check this though.
Based on the article and the fact that they implied that sticky sessions are necessary, it doesn't seem that the abstraction is airtight.
If it was properly stateful, then sticky sessions would not be required. With WebSockets, sticky sessions are not required when load balancing.
It's not sticky sessions in the traditional sense. It's a single connection. Http/1.1 requests are allowed to be stateful within a single connection as well. The difference is there is built support for multiplexed requests within that single connection.
I was making this argument for years. WebSockets was designed for bidirectional data exchange between client and server. On the other hand, HTTP2 was designed for pushing static resources to the client to speed up loading of front ends (it was meant to make bundling front-end scripts redundant). HTTP2 was not designed for bidirectional data exchange over a stateful channel.