It certainly does look like that. I do think though that we've learned a number of central lessons in the process:
- treat messaging as a first class concept, not something to hide & abstract away.
- do not attempt to implement polymorphism in a messaging protocol. Do not bind your messaging protocol to a programming language's type system (they serve different purposes).
- bake fundamental monitoring & maintainability concepts into the protocol (e.g. intermediaries must be able to understand what responses are errors).
- have a well understood, simple backwards and forwards compatibility story.
- etc.
All of this is stuff we didn't understand in RMI or CORBA or SOAP etc. REST was a great wakeup call, both in simplicity and some of the messaging protocol concepts (such as error modelling). It is missing the application level binding - there's just no good reason why you wouldn't have a statically checkable method/request/response type binding.
I am a bit weary on whether gRPC will go over board again in complexity. We'll see.