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