Why the checker is run before the evaluator
The evaluator answers with a value. A value from a bad program is a value nobody can trust, so the order is written.
The cost of a pass
A pass walks the whole tree. The walk is the cost, and the cost is why passes are counted rather than added freely.