I've seen a few places that when using the r.watershed function in GRASS QGIS, you do not need to use the "fill-sinks" procedure on the DEM before running the function.
According to the documentation: "Option elevation specifies the elevation data on which entire analysis is based. NULL (nodata) cells are ignored, zero and negative values are valid elevation data. Gaps in the elevation map that are located within the area of interest must be filled beforehand, e.g. with r.fillnulls, to avoid distortions. The elevation map need not be sink-filled because the module uses a least-cost algorithm."
How does the least-cost algorithm work, and why is it not necessary to perform a "fill-sinks" procedure when using it?