Tiny little tip I found is that the location of the input stockpile is FAR more important than for the output stockpile, you want the skilled workers to do the least amount of walking, haulers be damned!
Up/down starways are your FRIEND. I've managed to massively optimise most of my operations by building my workships around the periphery of a room all of which are near up/down stairways and directly below their particular stockpile and directly above their particular finished goods stockpile. Once you get enough haulers the fastest setup I've found so far is to leave moving finished stuff around to the haulers and let your working dorf only move around things he needs to work with. Haulers will put stuff in the stockpiles, he gets stuff to work with as he needs it, travel time is largely minimized.