0 - x is using a binary subtraction operator. Something unsigned integers must support. -x is unary negation, something that doesn’t make a ton of sense for an unsigned integer to support unless you’re using it as a collection of bits, or a ring. These are of course perfectly valid use cases, and are fully supported by Rust.
However unless the domain clearly identifies the numbers in question as being used in such a manner, -x is something that I would expect to be a programmer error on a uint. 0 - x is something that is just trivially allowed by providing binary subtraction. I mean, we could lint against it too, but I don’t think that’s necessary.
I am highly doubtful that the core team is going to let unary negation of unsigned integers go away, though. It has been given the stamp of approval on several occasions before, and I don’t think they’re going to backtrack on it. It’s just going to be one of those errors tons of people make.