Remote query currently uses the client marshaller for marshalling the query request/response objects. This is currently hardcoded to work for the protobuf and jboss-marshalling case, but if the client's marshaller is changed to something else this will break.
The solution would be to separate the marshalling. The query request/response object should be marshalled using protobuf regardless of what client marshaller is configured. Only the payload of the reponse should be marshalled using the client marshaller.