I posted this item to the
mailto:pgsql-bugs@postgresql.org mailing list, and Tom Lane sent the following response (I haven't implemented it yet):
"[I]t looks like this problem has already been fixed in current CVS sources --- it's a foulup in subplan handling for APPEND plans, which basically means that you need sub-SELECTS in a UNION to cause it.
Easiest patch for 7.0.* is to grab src/backend/optimizer/plan/setrefs.c
out of the CVS server or a recent nightly snapshot tarball and drop it
into 7.0.* sources as-is."