Disclaimer: I understand the difference between IEnumerable and IEnumerator and how to use both. This is not a dupl
The two interfaces each represent very different concepts. IEnumerable is something that "allows enumeration", where IEnumerator is the representation of the enumeration itself.
If you were to merge these together, it would be impossible to enumerate a single collection more than once at the same time (without some other mechanism in place). For example, two threads doing a foreach over an array would no longer work, where that is perfectly acceptable in the current design.