I think that's a point which is bordering on religious - many people would debate trusting the compiler, especially over time and more complex situations.
I'd certainly tend to agree with you in general but more for the reason that the compiler can abstract over hardware changes across time. I'd take that benefit over the risk of the optimisation not being applied for most code I write - non-optimisations would be considered bugs and probably/eventually fixed.
I'd strongly disagree the code is more complex (in this case).