I was expecting that too. It seems strictly more expressive, since once you have the niche, you can do anything you like with it.
And INT_MIN is a better place for it than zero imo. If Rust had a `BalancedI32` I would reach for it a lot more than I use the NonZero types. In my code at least, I've found zero is a pretty useful number.