I do understand what you're saying, but based on prior discussions I've learned that unless an iterator is 1) fused, or 2) documented to return when you call next after a None, then you shouldn't call next after a None because it could panic. The documentation needs to be improved in this regard.
Therefore when it is not documented to return when calling next after None, the implication is that returning None means "no more". If this were not the case, many iterators wouldn't behave as normally expected, since many are not fused and do not document the next after None behavior; this particular iterator is one of those.
This probably goes without saying, but by fused I mean specifically that it implements FusedIterator in the type. For this iterator the type is the following, which doesn't have FusedIterator, so we can't depend on it being fused.
) -> impl Iterator<Item = &'a Process> + 'b
It's not a great situation. I only pointed it out in the first place because there is the danger of panic if you call next after None in this particular case, since that behavior isn't documented. Probably best to discuss further in the discussion thread I linked, or perhaps a new thread.
For reference here is an open issue that came out of the earlier discussion. And in fact this is probably the best place for more discussion.