I am new here, so forgive me if some of these have been suggested to death. A couple of simple and low-cost ideas that would make stockpiles easier to manage:
I have an idea that will hopefully improve stockpiles, which is, more or less stockpile ordering.
A simpler idea I've had floating around in my head is along the same lines:
Stockpile priorityEvery stockpile is assigned a priority number/quality (0 1 2 3 etc. or lowest low high highest etc). Defaults to 1/low and it goes up from there. Whenever a hauling job is initiated, the destination is always in the highest priority stockpile. If there is an open space in a stockpile, the stockpile automatically creates a job to haul from any lower-priority stockpiles. That's it.
When I have general storage for wood in my fortress, it's priority 1/low. Next to the wood furnace and carpenter, each have their own stockpiles at priority 2/high. The stockpiles near the furnace and workshop each fill up BEFORE the general storage stockpile no matter what, and any open space in their stockpile automatically creates a job to pull from the general storage. Booze and prepared meals can be kept in central storage with priority 0, but the Legendary Dining Room can have a small priority 1 stockpile that stocks booze and another that stocks prepared meals. Even the central stockpile can have its mouth designated priority 1/low, then the rest of the stockpile designated 0/lowest to speed up retrieval. I realize you can basically do all this with the very spare "take from" system currently, but prioritization allows an automatic process that only needs assignment once. Keeping track of myriad custom stockpiles and "take from" chains is a clumsy pain when you're trying to make sure several different workshops have their own stockpiles of fuel or ore or whatever that need to be full to maintain efficiency.
Workshop input/output stockpilesBe able to flat out designate that a workshop takes inputs from a specific stockpile or workshop only/first. You guys have suggested this already, and it's great.
Be able to designate where workshops output to first, and whether anyone (the crafter too) or a separate hauler takes the job.
Make stockpiles resizeable, renamable, splittable, fuseable etc.This seems obvious. Nobody likes undesignating and redesignating custom stockpiles. Stockpiles also need to be splittable and fuseable. Splitting would create another identical stockpile that is designated separately, and fusing simply combines the current stockpile with another targeted one, combining their settings additively (booze stockpile + meal stockpile = booze/meal stockpile). Discontiguous stockpiles even across Z levels would be awesome, but who knows how useful.
I would imagine you'd select the stockpile with <q>, then hit <r> or whatever to resize just like a room or activity zone or whatever, then:
a add a designation rectangle
x remove a designation rectangle (just like activity ones)
f fuse/merge with another target stockpile (a la "take from")
s split a new identical stockpile with a designation rectangle
n rename the stockpile
Drop-off statusDesignate a stockpile as a drop point, meaning that it's a valid destination for a hauling job NOT from a stockpile, and immediately creates another job for a different dwarf so that it is by definition only a temporary stop. Woodcutters or goblinite gatherers drop just inside the fort's entrance, the undergrounders pick up the goods and carry them to central storage/workshops. This seems a little trickier than priority, since multiple drop-off piles could interfere with one another.
For further complexity, a priority number could be used, and the drop-off status means that proximity trumps priority until the item enters a drop-off point, but jobs FROM a drop-off follow priority. So a priority 0 drop-off point receives wood from the overworld due to proximity, feeds to a priority 1 drop-off point underground due to priority, which feeds to a priority 0 central stockpile due to the drop-off status, which feeds to a priority 1 workshop input stockpile.
Quantum dump-likeBe able to designate an area that acts like a quantum dump currently does, except more, er, kosher. Make a new kind of mass designation (say, a Mass Move designation) and everything des'd is moved AS CLOSE AS POSSIBLE to the selected designation point/plane. It disappears once the Mass Move is finished, so you don't have dozens of dumps clogging up your room list. I guess it'd be considered an Activity Zone while the Mass Move is in progress if you need to be edit the Mass Move and we're shooting for the stars? The point of this idea is a "legal" solution to the very real problem that quantum dumping solves.
More robust take-fromThis seems obvious, but infinite take-from or give-to commands. It doesn't seem difficult to have an indicator if you accidentally do create a take-from loop (e.g. WARNING: SUPPLY LOOP). I have no idea if anyone else on earth played CivCity Rome, but its warehouse routing was very flexible and worked beautifully.