Only the lower-bound of the size_hint is really ever used today: Is .size_hint().1 ever used?
Personally, I think the answer is that size_hint is the wrong API for reserveing -- there should be something like reserve_guess with weaker guarantees so that it can both overestimate and underestimate, depending on what the adapter expects to happen.