The reasoning goes along the lines of, "reverse in place is an expensive operation, so we don't want to make it too easy for people to do". At least that's the gist of what I got out of the argument the many times it has come up.
It's not about the storage - it is about the in-place-modification. The reasioning is that people otherwise could assume that
a = [1, 2] b = a.reverse() assert a[0] == 1 and b[0] == 2 would hold, but instead of course "a" is changed. Using reversed as b = reversed(a) will make that assumption hold. Diez -- http://mail.python.org/mailman/listinfo/python-list