Hi Kant,
Speaking for the C++ implementation (since that's the one I wrote), the generated interface types actually are not tied to a specific RPC implementation. In theory, you could define your own RPC protocol and provide alternatives to rpc.h, rpc.c++, and rpc.capnp. That said, the generated interfaces _do_ assume certain constraints on an RPC system, such as that it can handle object capabilities, promise pipelining, and E-order. Gives the constraints, I am not sure if there is a lot of freedom in the RPC protocol, so I'm not sure an alternative RPC protocol would be interesting. However, it's certainly true that you could implement the code generation for interfaces without having the RPC built out. But, there is still a significant amount of work that goes into generating code at all, and making sure it is designed in a way that is compatible with a future RPC implementation. So, usually people don't embark on that work unless they're also going to implement the RPC protocol.
-Kenton