This should just fall out of the generator desugaring I showed above.
Yes, this is what I mean as well
I don't know about this. Iterator is pretty useless without combinators. (You can't easily iterate over two things in lock step). Also chaining iterators is now impossible, and oh look, fairly useless iterators. At this point iterators are only useful as a minor performance improvement. (While this may be enough, it isn't what makes Iterator the perfectly designed trait that it is)
The compiler can reason about inhabitedness so you don't need to.