andres on #postgresql says that making #2 use a faster plan shouldn't be hard, but he doesn't seem #3 happening.
I was surprised about #2 not being faster, andres said "Afaics its this restriction: "1. The qual must not contain any subselects (mainly because I'm not sure it will work correctly: sublinks will already have been transformed into subplans in the qual, but not in the subquery)." in qual_is_pushdown_safe"
Not sure if there's anything to be done here, just thought I'd post in case anyone has any ideas. In an ideal world, I'd be able to write version #3.