The following algorithm for the shortest path can be used to calculate the minimum cost flow:

The algorithm calculates the shortest path from a source to a sink through the Dijkstra algorithm, sends some flow through that path, and repeats in a calculated residual network (until the entire flow is sent).

My question here is, why is this residual network so complicated?

Reducing the capacity of the arcs used to send the flow is logical, and for the network examples I have tested, the resulting residual network seems to be just the job.

So why use potentials for nodes and reduce costs for bows? Is there a particular counterexample to just reduce the capacities in a remnant network?