It's not just about compile time. Couple of examples:
- Parallel downloading / uploading of artifacts
- Multi-step transformation (old-style: lexer to C to Object file to linker to deployment). You can turn this around, but generally you want each output of your lexer to be input to the C compiler and so on.
- Testing (especially brute-force testing might take time)
And in modern situations you have the same, with Typescript => Javascript => Minimisation => Combination => Deployment (roughly).
It really helps to think of this as a dependency chain and use a partial-order planner to find a possible linearization and execute.