Correct, Is there a set of flags that would allow the assembleUnion to determine that? 

There are two cases here. 
- Will both inputs to the union produce only unique values? If so use a union_all. 
- Will one input to the union produce distinct values in sorted order? The example I'm thinking of is selecting fields (a,b) from a unique covering index on (a,b). It also applies to all literals. If so, omit the entirely unneeded sort.