Some question on the semantics of the Arith dialect

That would be too restrictive and prevent us from speculating on ops that are known to succeed (come back with some result without trapping etc.) on most hardware. An example of an op where we’d want immediate UB is division by zero or out of bounds memory accesses. We already disallow have some wording around the latter being UB in the vector dialect, e.g., 'vector' Dialect - MLIR.

You can follow the original proposal for poison semantics to see the full rationale: [RFC] Poison semantics for MLIR.