The bin problem is that bins are essentially bugged, which transforms them from very useful to being of marginal usefulness.
The issue is that when a bin is accessed to put something into it or retrieve something from it, access to all other items within the bin are blocked. This means that those items "don't exist" for jobs being generated during this period, and existing jobs trying to access the bin during the lockout fail because the item the job was tasked to use isn't available. The lockout period isn't the complete time an accessing job is active, but starts when the dorf nears the bin, and, presumably, ends as the dorf leaves (I've seen the nearing part, but not when it becomes available again).
This issue is particularly clear if you have a gem stockpile with cut and uncut gems and have repeat jobs to cut gems. Eventually a job to store an uncut or cut gem clashes with the gem cutter's access to the bin, at which time the repeat job is cancelled.
The bin issue could be fixed either by removing the simultaneous access lock (allowing an unlimited number of dorfs to root around in the same bin simultaneously, which is silly but harmless) while potentially causing issues with jobs to haul the bin (e.g. to the trade depot. There'd have to be a mechanism to lock the bin from new access while waiting for the current ones to finish, implying access would still have to be tracked), or it could be fixed by NOT hiding the items inside the bin unless the bin itself is hauled, and have the dorfs sort out the access themselves by spontaneously forming queues rather than just give up.