RPC in general failed for two reasons:
1. Synchronous in an async environment
2. Brittle client/server coupling of RPC definitions
HTTP is a remote procedure call, it's request/response.
Each request/response pair is independent and asynchronous.
The difference between HTTP and a more "specified" RPC is that the body of the request and the body of the response are defined "out of band" and are flexible enough to allow for the client and the server to evolve independently.
I could make HTTP look like ONC-RPC by using XDR to martial the arguments in the request/response body and map the actual procedure name to the URL. The MIME type "application/protobuf" exists to do the same using protobufs. So does "applicaton/vnd.google.protobuf".
HTTP was built using TCP as the reliable connection layer over the IP packet protocol but QUIC replaces that using UDP over IP to remove the problems that a connection based/reliable protcol like TCP causes.
Really not sure what a new protocol would provide other than shuffling the boundaries again.