I agree, the way stockpile shipping is inconvenient. However it was a quick addition and done to reduce the job decision lag. Consider this:
First, it isn't that a stockpile is taking from another stockpile. The jobs created are a stockpile shipping to another stockpile. It really functions in reverse. As such, if you had 2 or more stockpiles all wanted the same goods, the game would have to decide which stockpile would get them. This would increase the lag as the game has to first check availability for space in all stockpiles it ships too before deciding which will get it. Alternately it might only ship to the first on the list until it is full and the second only after. With Toady trying to improve the speed which the game runs, this feature while useful would be a step in the wrong direction.
As it currently sits, I only use this feature when creating 3d stockpiles to keep the supplies I want closest to the workshops that need them. Alternately, I can use it to make the stockpile by my workshops only get one kind of stone taken from the other stockpiles easily.
Anyways, with food and drink, dwarves won't really go for what's closest at hand. Instead they decide what they want to eat or drink based on their preferences. Maybe later we'll be able to set up 'dwarven refrigerators' later which you can assign ownership to a dwarf, and a dwarf can store meals for later.