I don't actually know if this is bad though. In this case I would not mind an error forcing someone to write
if let Some(_) = it.next() {
loop {}
}
or something equally explicit and obvious. Way more obvious than my_complicated_iter.count(). Really it's going to take a base iterator of std::iter::from_fn(something_mathy) to be a real counterexample.
See Should we have another non-type never?
(wherein I'd rather we spelled it fn count(self) -> const ! {} but otherwise: agreed, this would be nice functionality)