Locations now get assigned in order, but skipping built-ins, which can be done post flattening.
This makes the interface be invariant, whether or not individual variables are used.