There is actually a neat way around this by using typed assembly language/proof carrying code. If you had a type preserving compiler down to machine code you could use a separate proof checker (which you presumably wrote by hand in machine code) to convince yourself that the resulting binary implements its spec. :)
The spec of a compiler is also relatively simple, so there isn't a lot of room for backdoors there.
The spec of a compiler is also relatively simple, so there isn't a lot of room for backdoors there.