MyWeekday is supposed to have the same ABI as DayOfWeek here because of repr(transparent), and yet I’d still be surprised if this had a variant count of 7 rather than 1. I’m sure there are others who think differently, and that’s how we end up with the behavior on non-enums remaining unspecified.
The number of possible values for u32 cannot be represented even in 32 bit systems, and the number of possible values for u64 cannot be represented even in 64 bit systems. AFAIK there are no 128 bit systems yet, but once we get there the number of possible values for u128> won't be representable there.
Because these types need to represent the zero, the maximum number they can represent is lower by one than the number of values they can represent.