When using entity or occurrence parameters, Uniface performs an implicit creocc prior to populating the record with the parameter data. In the case of In and Out parameter directions, this makes perfect sense. However, when using a parameter with a direction of InOut, it does not make sense to do an implicit creocc when returning from the operation. The fact that it is InOut implies that you are passing data into the operation. This operation changes the data and passes it back. Since Uniface currently performs this implicit creocc on returning, you end up with two occurrences in the entity when there should only really be one (ie the In data should get replaced with the Out data, not appended to).
Whilst there are workarounds (eg use putlistitems/occ / getlistitems/occ and string parameters instead), adding this would mean that these parameters get more widely used by developers.