I issued an update and re-documented the : pocket "" ; command.
https://adventuron.io/docs/tut/#_common_commands
"Creates an item and attempts to place it in the players pocket (or inventory) if there is enough space in the inventory (uses weight + item limits). If the player cannot take the object (too heavy or holding too many items), then the object is created in the location where the player is located when the location is redescribed or the prompt is redisplayed (whichever comes first).
If the object is placed in the inventory successfully, the operation will be quiet (no messages printed), if placing fails, then the appropriate error message (You're holding too many items, you're can't take that) will be displayed. Pocket should be the last item in an event loop, and should usually come after printing some message to describe the item that should be entering the inventory."
The logic as described above is failsafe logic, to prevent the game entering an unknown state. Usually dropping the object in the same room should be enough, but it may be that the : pocket "object_id"; is executed in a cut scene and coming back to the location where the object was dropped is no longer possible. Therefore it drops the untaken object in the location where the player has moved to (if the player has moved).