[SCEV] question about inferring nsw flags

IIUC, currently SCEV has some limitations when inferring nsw flags for an AddRec. (A related discussion is here: LLVM: Scalar evolution)

In particular, for a loop like this

for (int64_t i = 0; i < n; i++) {
    if (cond1(i)) {
      A[3*i] = 1;
    }
    if (cond2(i)) {
      A[3*i+1] = 1;
    }
}

currently SCEV cannot infer nsw flags for AddRecs corresponding to the subscripts that are used in conditional stores.

Also IIUC, there has been attempts to address this limitation (for example the latest one that I know of: patches like [SCEV] Add option to request use-specific SCEV for a GEP expr (WIP). by fhahn · Pull Request #91964 · llvm/llvm-project · GitHub and https://github.com/llvm/llvm-project/pull/91961 ).

Is it correct to say that the main reason preventing us from merging https://github.com/llvm/llvm-project/pull/91961 is compile time? or is there a more serious reason?

In general, is there any fundamental reason that makes it very unlikely to extend SCEV to be able to infer nsw flags for cases like the example above? e.g. something like a conceptual ambiguity. (I understand that such a solution might require client opt-in so SCEV’s default behavior does not change)