Current compiler versions are written in a way that assume that the optimizer is always activated for deployment. I know that this activates more code paths that might contain bugs, but it also has a safety component: It allows you to write smart contract code in safer or more descriptive but more expensive ways which are then reduced to the same code by the optimizer. At least that is the theory 
The Yul intermediate language and the new optimizer were also written in a way that keep the Yul code readable and thus auditable even after optimization.