Currently, WITH a AS NOT MATERIALIZED (INSERT ...) would silently disregard the "NOT MATERIALIZED" instruction and execute the data- modifying CTE to completion (as per the long-standing DML CTE rule).
This seems like an omission to me. Ideally, the presence of an explicit "NOT MATERIALIZED" clause on a data-modifying CTE should disable the "run to completion" logic. It is understandably late in the 12 cycle, so maybe prohibit NOT MATERIALIZED with DML altogheter and revisit this in 13? Thoughts? Elvis