I have an idea that will hopefully improve stockpiles, which is, more or less stockpile ordering.
Stockpile ordering means that the player can make 4 types of stockpile:
Primary, secondary, tertiary, and overflow.
Primary is the stockpile that workers use, tweaked a little. In this case workers take the end result of their work (Farming, crafting, woodcutting) to a primary stockpile of that type, so a farmer would harvest their crop, and put it into a nearby primary stockpile.
Secondary stockpiles are your main storage, basically what our stockpiles are now. Haulers would bring the resource from the primary stockpile to the secondary for storage, until they are moved to tertiary stockpiles, basically acting as a central hub.
Tertiary stockpiles are the used ones, which dwarves will take objects out of. These will draw from secondary stockpiles, and could be, for instance a raw food stockpile nearby the kitchens, a prepared food and drink stockpile in your dining room, or a wood stockpile outside the carpenters workshop. These are used for when there isn't enough space in an area for a full sized stockpile.
Overflow stockpiles are linked to secondary stockpiles, and are only used when there is too many objects for the secondary to handle. Haulers would not take objects from overflow stockpiles into tertiary, and when the secondary is emptied out the objects will be returned there.
If Toady employs this method, I would recommend changing the hauling labour sub-division to Primary-Secondary, Secondary-Tertiary, and Secondary-Overflow instead of the options based on object type.