Surprising but true: dogs can minimize fetch times by performing vector calculations. To test this, a dog retrieved a stick by running some distance along shore and then swimming out to the stick; the dog usually chose the shore distance and swimming distance in such a way that it minimized total time-to-fetch.
I haven’t seen any reference to experiments done in moving water, which would reveal whether dogs understand the difference between relative and absolute velocity. Anyone with a Retriever and transportation to the Connecticut river is encouraged to try it.