I remember playing a game called Cultures as a kid where, if I remember correctly, one could place signs.
So when one placed a sign it would register what resources and buildings there where within a certain radius of it. That sign would the list said resources and buildings. Then it would check for what signs was within a given radius and link with it. That is, they pointed to each other and clicking on the other sign would then tell me what resources and buildings was within its radius and ditto of what was in the chain of signs it was connected too. Clicking on one of the arrow boards pointing to another sign would tell what resources could be found be following that particular chain.
This meant that any npc could easily and quickly find what they needed and go there.
Why not use something similar here? Let people place down signs as they wish.
Then there is multiple ways one could go about this. Do like cultures and let them automatically register everything within its radius of control and link itself to nearby signs. Any dwarf who needs, say, leather will the start the path-finding algorithm. Then, instead of him waiting for it finding a leather it might find a sign with the leather tag. Then he will simply follow that sign chain to where the leather is.
Or one could choose to make limited signs that are defined however you wish. Say, a leather workshop linked up to a butcher shop or a butchers stockpile. Then anyone using the leather workshop would automatically go and get leather from there without pathfinding at all. Of course, one would have to make a lot signs if there is a lot of curves and corners. Or maybe the computer simply pre-calculate a path between to signs.
One could conceivably make a lot of industries very cheap on pathfinding if one set it up carefully. Now, I am no programmer so there is probably some problems that might come up, so please mention them so it can be worked out or the idea thrown away. Like there might be some collision and blocked path problems.