イテレータを反転したイテレータを得る修行

イテレータを渡すと、それを反転したイテレータが返るような関数がないものか、と思ったけど、なさげ。reversed() はシーケンスを引数に取ってそれを反転したイテレータを返す。イテレータから一旦シーケンスを経由すれば大丈夫、ということになる。つまり、

>>> [v for v in reversed(enumerate("abcde"))]
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: argument to reversed() must be a sequence

は駄目だけど、

>>> [v for v in reversed([u for u in enumerate("abcde")])]
[(4, 'e'), (3, 'd'), (2, 'c'), (1, 'b'), (0, 'a')]

はよい、と。