Handling C++ exceptions

I don't think so. The overflow and array subscript examples are public API. The danger I'm talking about is most likely to happen in application code where public is irrelevant.

If the optimizer is able to handle this well in the cases where it is most useful it may be a tradeoff worth making. But the tradeoff will remain and there will be codebases where it is abused and causes problems.