When a script calls llGiveInventory() or llGiveInventoryList(), the script should receive the same notification AVs do when the user is not online or accepts or declines the offer.
We currently have no way of validating whether or not an item was actually given to someone or something, and this is a cause for concern.
I believe there may also be a problem where if a user is in busy or away mode, that items are not delivered and the receiver never knows there was an attempt made. Again, lack of scripts knowing whether or not objects were delivered means the script doesn't know what happened either. I am sure most people who sell a lot via vendors have run into this issue at some point.