Not that it helps Igor, but we've implemented single pass sort/unique, grouping and limit optimizations and it speeds things up to a single seqscan over the data, from 2-5 times faster than a typical external sort.
Was that integrated back into PostgreSQL, or is that part of Greenplum's offering?
I can't think of a way that indexing would help this situation given the required visibility check of each tuple.
I agree, using indexes as a "skinny" table is a whole other feature that would be nice.