My thoughts on wheelbarrows would be to improve on the usage of bins.
Basically say there are 5 stones in an area that need hauling. Instead of a dwarf going over and picking up one stone at a time, it would pick up an unclaimed bin (or perhaps a "wheelbarrow" item) and move it to the first item. It would drop the bin, put the stone in the bin, and then take the bin on to the next item. Repeat until either the bin is full (do bins ever get full?) or the job is done and then the dwarf takes the bin over to the destination, sets down the bin and takes out the items one by one.
The bin is going to get heavy. I think it would be better for the dwarf to set the bin down, put the stone in it, then put the other nearby stones in the bin, then carry the bin away. If it has to carry the bin while it goes to each stone, it will be slow and unrealistic. Nobody wants to carry a bin full of rocks around while they pick up rocks.
Also, bins do get full. Dwarves eventually stop putting things in them.
-If items are sent for dumping, making sure the bin isn't dumped with the items
Just use the bins like temporary 1x1 stockpiles. When you want to haul rocks, rock stockpiles are automatically made on top of some of the rocks. Dwarves carry bins to the 1x1 stockpiles as normal, and fill the bins in the stockpiles as normal. When the bins become full, they're carried away to either dumping points or other stockpiles. If they're carried to normal stockpiles, the bins are simply left in the stockpile, assuming the stockpile has not reached its limit on bins (if it has, the bin must be unloaded). If they're carried to dump points, a new temporary 1x1 stockpile is created near the dump point, then the items inside the bin are designated for dumping, though the bin is not. When the bin is emptied, the temporary stockpile is removed and the bin becomes available for reuse.
-having space to put down the bin etc.
Should be easy in most cases. There might be some special cases where it would be difficult, like if you wanted to haul all of the items in one very large stockpile to another very large stockpile. You'd just have to put the bins on the nearest available square. It wouldn't be perfectly efficient, but it would be better than what we have now.
-job claiming. Should the dwarf claim several items at a time or will other dwarves be claiming the other stones around it, this would result in Clogged announcements of "Job item misplaced". If you have 5 stones and 5 dwarves hauling stuff, one dwarf (or even all 5 dwarves) might all take bins and thus you'd have 5 bins at the location and 5 dwarves fighting over which bin does which stone go into.
When you have a cluster of stuff that needs to be packed and moved, calculate how many items can go into each bin. If 10 items can go in each bin, then make one temporary stockpile for each dwarf with the hauling labor enabled, to a maximum of the number of items. If we have 100 items, and 5 dwarves with the hauling labor, then we make 5 temporary stockpiles. If we have 100 items and 15 dwarves with the hauling labor, then we make 10 temporary stockpiles.
A cluster of stuff that needs to be packed and moved would be defined as items which are no more than, say, 3 tiles apart from any other item in the cluster (ignoring the Z axis). Once you've determined how large the cluster is, you make the temporary stockpiles anywhere inside the cluster, or as close to it as possible if they can't be made inside.
Perhaps the solution would be that the bin would allow the dwarf to claim stuff within a 10 tile radius (this would be stopped by walls & impassable terrain). So he'd set down the bin and "claim" a bunch of stuff nearby, moving them back and forth to the bin before continuing onward. This would prevent some obstacles but the main problem would remain:
Once the bin is set down into the temporary stockpile, it can claim enough nearby unclaimed items to be filled. It claims the nearest items first and ignores items which have been claimed by other bins already.
If you have 5 stones right next to each other, and 5 dwarves hauling, how do you have the AI identify that this is a "bin" job and have a single dwarf move a single bin to the area for collection instead of having 5 dwarves all pick up 5 bins and each try and move the 5 stones?
First you do a cluster test - when an item needs to be hauled check for items of the same type within 3 tiles (ignoring the Z axis) which also need to be hauled, and which need to be hauled to the same or a nearby stockpile or dump point. If there's at least 3 items, it passes the cluster test. If there's less than three items nearby, we don't need to bother with bins.
If we pass the cluster test, we continue checking to see how large the cluster is. Once we've assessed the size of the cluster, we calculate how many bins will be needed to contain all the items in the cluster. When we determine the number of bins, we check how many dwarves have the hauling labor enabled. We create a number of temporary stockpiles equal to whichever value is lower: the number of bins necessary, and the number of haulers.
We position the temporary stockpiles on top of items in the cluster. The exact location doesn't matter too much.
Now that we have the temporary stockpiles we have dwarves bring bins to the stockpiles. They set the bins down and the bins claim all the items nearest to the bins. Any dwarf can then move the claimed items into the bins that claimed them. When the bin is full, the bin is taken to the stockpile or dump point where it will be unloaded if necessary. As soon as the bin is picked up, the temporary stockpile it was on is removed. If more temporary stockpiles are needed (because there weren't enough haulers to get everything in one pass) they are created randomly on top of any items in the cluster that remain unclaimed.