It's all in the documentation. :-)
The Java connector needs some basic permissions to read the metadata of the function module - otherwise it wouldn't know how to encode and decode the data for this specific backend system. DDIF_FIELDINFO_GET
is a part of that process.
(One has to keep in mind that besides the release-dependent changes, many structures can be extended or modified, so even if you're calling the same function module in different systems, there's no guarantee that the structures will be exactly the same.)