Answer
No — the documentation and the actual behavior are both correct; the apparent contradiction comes from what happens on the way OUT rather than the way in. The input truly is the XML-wrapped BINARY_PARAMETER/BIN_DATA structure as documented. But when the response message returned by your PL/SQL method itself contains that same BINARY_PARAMETER/BIN_DATA element structure, the framework automatically detects it and extracts the embedded binary content, returning the raw file itself as the actual output rather than the XML wrapper — so a function that simply echoes its XML input back out ends up producing the raw file as its visible response, purely because of this automatic unwrapping behavior on the response side, not because the input itself wasn't genuinely XML.