Even though TeX is a single pass compiler, multiple passes can be made by
reading a file several times.

  So I suggest one might consider adding this as a feature of LaTeX3:

  For example, if one wants to automate the LaTeX standard two-pass
compile, the environment "document" data would be put in a special file,
which is read twice; if this feature is chosen, the first pass could then
be done without actual typesetting, making it faster.

  Etc.

  Hans Aberg