The fact that signed overflow is undefined is unfortunately something that is necessary for certain optimizations to be valid. You can, for example, try `-fwrapv` or `-ftrapv` on GCC, but if you run through an extensive benchmark suite you’ll see regressions.
Not everyone cares about the benchmarks, but enough do.
However, leaving the overflow check/behavior on the multiplication as "implementation defined" seems like a bad call to me