XDBC protocol is tricky but allows specification of types, whereas REST API eval has a simpler API which accepts a JSON payload.  Since the types are inferred in the REST API it does not have all the functionality of the XDBC protocol.  This is not an issue for REST eval nor Node.js eval which is primarily intended to be used with JSON data payloads.  However, the goal for the Java Client API is to eventually replace XCC, including all capabilities with XML and XQuery.  To do that we will use XDBC as transport protocol to have all the features available to XCC.