Consider this code, where x and y are integers:
if (x)
y = 42;
Is the following compiler transformation allow
If it was, then you just wouldn't be able to exclude access to any object that's reachable from global variables or other variables. The compiler could even tentatively call functions that are never called, whenever an indirect call is made, and "cancel" their effect afterward by restoring the original value.
Going down this opti-pessimisation path, it could do division by zero in advance then "ignore" the result if the divisor was zero, even if that's a trap and program is stopped.
This is patently absurd and must be rejected whether or not the standard says it should be.