I thought that too, but apparently there are sneaky ways to break this. A non-cache-rpc command sent via replication queue will get wrapped in a SingleRpcCommand and this dirty disguising gets it processed via the InboundInvocationHandlerImpl - quite a mess! So if some dude added a custom command that is not a cache command (that means it might choose to do its own response wrapping) the result might get double wrapped here. Or should I leave this broken as it was in the name of backwards compatibility? :)