By its own admission, llGiveInventory is not reliable: https://wiki.secondlife.com/wiki/LlGiveInventory
Because of this, delivery scripts have to resort to tricks to
attempt
to work-around the problems.
The most egregious trick required is testing the online status of the intended recipient. This is a
huge
privacy violation. Technically, it is in violation of the Terms of Service.
At the very least, llGiveInventory should return an error if the intended recipient is offline, though even this is also a privacy violation.
Also, no-copy objects are too easily lost.
Marketplace manages to avoid these problems. Perhaps llGiveInventory can be changed to add an entry to Marketplace's delivery queue. This would also have the benefit that many/most redeliveries could be handled through Marketplace.