Yes, highly optimising compilers can be less predictable. But given the choice between two compilers, where one is easier to reason about but the other produces faster overall code, I'd pick the latter every time.
miniblog.
Related Posts
The author of rust-analyzer discussing how language features help or hinder fast IDEs.
If you allow `from m import *` you can't analyse files in isolation, and it's even harder in Rust.
Implementing interactive languages, and the tradeoffs of interpreters, JIT compilers, and AOT compilers:
Interpreters versus compilers as a spectrum, and a fun worked example of optimising Brainfuck: