> Pythonic programming obeys explicit over implicit, which which if you want a lazy version you explicitly use a lazy version.
What does this have to do with anything? If the construct was defined as lazy, then it would be just as explicit. There is nothing about generator expressions that says "here, here, this is lazy".