Is there a way to see what were the Candidate Execution Plans generated by the Query Optimizer?
The optimizer has heuristics to cut down the search time by discarding plans and partial plans before they are fully explored if it believes they are worse than current best solutions it has seen so far in the search.  So, it doesn't actually fully generate all of the alternatives.  Also, the XML representation is really something that gets generated at the end of the search - the internal representation is somewhat different.  Unfortunately, there is no current public feature for you to explore other possible plans for the same query.  With a debugger we can look at the structure that holds all of this during the optimization process.  It's called the Memo.  You can read more about the Cascades framework on which SQL's optimizer is based here