Sometimes, about half the time, my dwarves are supplying my reservoir (which currently can only be filled by bucket) from the well above that same reservoir, moving water in a loop. The other half of the time they go to the distant brook. I believe they only go to the brook when the well is considered dry.
Here is a full explanation of the setup: I have an underground reservoir multiple z-levels high but only one tile wide and accessible by one tile at one end. That tile is adjacent to a one-tile pond zone over the water. The reservoir itself slopes downward from there via ramps for two z-levels (for a total of three z-levels) toward a grate directly below the well at the other end, which keeps the dwarves from drinking muddy water. So there is one full tile of water below the grate (and that tile has a floodgate on one wall which can be opened to drain the reservoir), and a maximum of 5 full tiles of water above the grate. The well is one tile above the maximum fluid level, on the same z-level as the tile they stand on to dump their buckets into the reservoir, but the route between the two is circuitous rather than direct.
Side view (A=air; W=water; S=stone, w=well, G=water with grate on top):
A A A w A
S W W W S
S S W W S
S S S G S
S S S S S
I believe this should be considered a bug. I like the use of wells as an arbitrary water source, but the game should specifically be able to avoid the loop of pond-filling a body of water using a well that draws on the same water body. I should be able to fill a reservoir in the simplest way (without complicated aqueducts and mechanics) and draw from it at the same time, without disabling one and then the other by turns. If the logic to do this programmatically is too complex, perhaps a system could be put in place for ponds to specify their source, similar to the stockpile system in which a secondary stockpile can be set to take resources from a different, primary stockpile.
Before I report it, I would like to get confirmation and/or reactions as to whether this seems buggy and worth reporting.