The problems start when things are tightly packed. One object might be in the way of your gripper so you can't take the thing you want. What happens if you drop the object? Does your robot know how to move things aside to grab the item you want?
And on top of this you have the whole issue of detecting objects in a cluttered environment: this requires state of the art semantic segmentation, robust 3D vision that will work on non-cooperative targets and a classifier that can work with occlusions and huge numbers of objects reliably.
I think it's reasonable that some items can be scanned upon entry into the warehouse, e.g. on a laser triangulation turntable that also grabs a video as it rotates. With this sort of task you want to exploit as many priors as you can find. If you look at papers (and factories), you see a lot of tricks: objects on flat surfaces that make segmentation easier, small numbers of known objects, etc.
If it could be done quickly enough with enough volume, maybe, but the constraint is that items have to be loaded off the truck, scanned and stowed into a bin (which makes them available for purchase on the site) as quickly as possible.
I wonder how they pick up books using this method?
Books are difficult because they appear to have hard surfaces on the side, which turn out to be not so hard and not suitable for gripping.
Also books, unless they're shrink wrapped, have a tendency to open which I imagine would be a pain.
Simple algorithm for that : Annoy (pun intended) towers :-)
It's not even just picking something up, it's picking one specific item out of an arbitrarily messy or overstuffed bin without dislodging or dropping anything else. Items in a bin can be wedged anywhere, in any position, in nondescript boxes only identifiable by the ASIN, or a vague natural language description. It's a hard visual logic, inference and manual dexterity problem made harder by unpredictability and harder still by the need to meet quotas, and every job has its own mess of them.
And on top of that, employees in Amazon warehouses are often cross-trained to save costs, which means you either need one robot that can unload, decant, move juice carts, pick, stow, pallete-stow, etc, at a moment's notice or else multiple dedicated robots for each task.
It's something humans do so easily that Amazon can justify paying almost nothing for the work, but still way beyond what AI and robotics can achieve. The Kiva pods seem to be the current state of the art for Amazon warehouses, and all they seem to do is move bins around (and can't even get that right sometimes.)