Actually I don't think there's anything wrong with enabling the feature. I'm writing a helper library for this API and for some reason I had it in my head that consumers of the library would have to enable the feature in their project dependencies. But I think if I implement UUIDNumber in my library, and enable the feature in the library's serde dependency, then they should be able to just use UUIDNumber and have it work (I hope).
No. If features worked like this, that would be scary. Then we would spend all of our time chasing features of all transitive dependencies.
Features are enabled automatically, and this is why they should be purely additive (which is what you'll see a lot of people mention in connection with them). Once a single transitive dependency enables a feature, it stays on for that crate, for the purposes of the entire dependency graph.