>A compiler pass is not a compiler.
What is the difference, if there's one well-defined language before the pass and another after it?
>A non-optimising C to assembly compiler is not compiling to the same level of abstraction.
Neither are "transpilers", otherwise they'd be quite useless. Abstraction isn't a linear hirerarchy, in any case.