Question for "Only if" part for the theorem "A language is Turing-recognizable iff some enumerator enumerates it."
A language is Turing-recognizable (or Recursively enumerable) iff there exists a Turing Machine which will enumerate all valid strings of the language.

What you probably miss in the above proof is the fact that $i$ can take any value ... when we say $i$ steps, we can mean $10$, $100$, $100000$, $\infty$ steps. 
Basically $i$ is an index that indicates the number of words in the language; the enumerator $E$ could very well run forever (if the language has an  infinite number of strings).