A quick pathing improvement suggestion, for those jobs that require dwarf to take some (undefined thing) to work location. (examples include Making food, brewing, loading cage/stonefall trap, many of the workshop orders.)
As of now, the dwarf get's a job (say, forge an steel helm). Dwarf looks for the closest steel bar, moves there, picks it up, hauls it to the workshop, and starts to work.
There is a small isuue with this: if the closest bar is away from the job location, this may be slower.
Ideally it works like this:
[Dwarf]..............[item].....................[workplace]
So the dwarf takes the item on while on the way to work. However, if the situation is like this:
[item]..........[dwarf]........................[item]...[workplace]
The dwarf will move to closest item, going in this case the wrong direction, before returning to work. This won't matter when you have defined item to use (the single "+<<+obsidian door +>>+" for example) since there is only one item, but with general items (steel bars, empty barrels, cookable items for food), there are multiple instances, and one might be closer to other end.
So, to simplily the work, the pathing should path
1) Dwarf to (item closest to dwarf), item to work
2) Dwarf to (item closest to work), item to work
It already does the first. Comparing the distance to the second would enable the dwarf to take the sorter route.
It would also make it so, that when your dwarf hauls the item right next to workplace before deciding to take a few week nap, the next dwarf would then decide to take that item (it is closest to workplace), and carry it to the work, instead of going to the other end of fortress to haul another item, and leave the first one to someone else to return.