Tom, two quick questions before attempting to read the patch:
Given that views are represented in a parsed representation, does anything need to happen to the Vars inside a view when that view is outer-joined to?
If an outer join is converted to an inner join, must this information get propagated to all the affected Vars, potentially across query block levels?