It appears that water is only redistributed up to a range of 50 tiles?
I tapped into a lake that is maybe 50x the size of the starting lake, so was somewhat surprised when the pumps ran dry.
Also, when refilling the starting lake (see my other thread), a sand bar remained dry while the rest of the lake was over-full.
I presume performance issues are the reason for these limits, but this is Factorio; people like to build big (my factory is pretty small still). So this is probably something that should be fixed somehow.
Idea: calculate water level by chunk instead of by tile, doing an initial scan to get the area of each chunk covered by water but touching only chunks when redistributing water. You could still set thresholds at which tile appearances are updated for the chunk (i.e. update chunk tiles when the chunk water level hits -100, -200, -300, etc. with each tile having its own ground level).