I wrote:
> Hmm. IIRC, there are smarts in there about whether a mergejoin can
> terminate early because of disparate ranges of the two join variables.
> Seems like it should be straightforward to fix it to also consider
> whether the time-to-return-first-row will be bloated because of
> disparate ranges.
I've posted a proposed patch for this:
http://archives.postgresql.org/pgsql-patches/2007-12/msg00025.php
regards, tom lane