If just removes the old RPC engine, my quick trying looks like the involved change isn't big and the risk looks acceptable. Sure servers won't accept requests using the old RPC version from old clients.
Sure. We should probably remove the PB wrappers in a follow-on change rather than dealing with it here.
Did you mean the protocol buffer service translator stuffs like ClientDatanodeProtocolServerSideTranslatorPB and the related? If so, I guess the incurred overhead would be the added layer and additional call. For types involved in the RPC calling request and response, we still need convert back and forth between normal Java types and protocol buffer types for convenience, like even in HBase, because sometimes protocol buffer types would look intrusive to pass down and use. Sorry if I misunderstood your point.
While it may be desirable sometimes to translate protobuf types into something else, there are many more times when it's simpler and less error-prone just to use the types directly. The translation code is very verbose, which makes it inconvenient to add or change anything, and has been a source of bugs in the past when someone forgets to manually copy a field.