Now that I think about it, just to elaborate on what I'm saying, "Let x be an element of E," is not actually an assertion -- a proposition that is either true or false. When someone says this in a proof we have to interpret it (and usually it is no big deal). But, in this case, it should be interpreted as the assertion that "There exists x, an element of E," which would be clearly false if E was empty. So, strictly speaking, I think the error with the easy proof (if it was not already known that E was nonempty) would be that first step: "Let x be an element of E."
Now, it is possible to reinterpret that statement to mean something more like "IF there existed x, an element of E, THEN...," but that would just bring us right back to E having to be nonempty for the result to hold. In other cases, you might interpret "Let x be an element of E," this way if it was a proof that, for instance, went like "Let x be an element of E, blah blah blah (contradiction), so E must be empty." In such an argument, the correct interpretation is the conditional one and x doesn't actually have to exist.
At any rate, I think the whole problem originates from the fact that it is such a knee jerk response to think of "Let x be an element of E," as an always true assertion or something. In fact, it, strictly speaking, is not actually an assertion at all and means different things depending on the context in which it is used.