There can still be cases where a fourth run is necessary, theoretically a fifth run. There are even cases where you get into an infinite loop, for example if you use the vref package. It will "cleverly" replace references to things like "figure 3 on the next page" or "figure 3 on page 8". When the reference is expanded, it might cause the figure to move to the following page, which means the reference is then contracted to "on page 8", which means the figure moves back to the original place again, in which case the reference must be updated, and so on ...
LaTeX will usually tell you by including a warning in the output ("LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right."), which no one reads, because it is so verbose. Not having that warning is not a guarantee that it's now stable either, so our Makefile actually compares the PDF files minus variable bytes like timestamps to know whether the build converged.