There's a major difference though: `value if predicate else alternative` is itself a value, something you can assign to a variable or pass to a function as a parameter.
The line itself is longer, but the idiom in the original uses mutation, which requires reading more adjacent lines to understand and make sure you haven't missed anything.
(In the concrete example, both versions use mutation.)
Any example that does what the proposed ??= operator does, which is inherently conditional mutation, will use mutation.
You can get examples equivalent to the proposed None-coalescing ?? operator does that don't use mutation, though.
I'm not sure I understand. Could you give a concrete example where only one version uses mutation?