I don't see how it is wrong... 'has' is a auxiliary verb that modifies/helps other verbs. For example 'has been pushed upstream' would also be correct. I don't know about anyone else but my english high school curriculum definitely covered helping verbs in this sort of use case. See here http://en.wikipedia.org/wiki/Auxiliary_verb. In this particular cause 'has' is used for emphasis that is has in fact went upstream.
Or am I completly missing some missuse there?