Hugo Kornelis (5/3/2012)
What bothers me (about the documentation referenced, not about this question) is the relative order of ON and JOIN - how can the ON be processed without first bringing in the joined table?
* My guess as to the answer - I think that in the logical processing order as described on the MSDN page, the "FROM" step refers to bringing in ALL the tables (probably as a cartesian product), "ON" to filtering on matching rows, and "JOIN" to bringing back rows that were filtered out but should be brought back because of an outer join.
I think you're right in that FROM refers to identifying all sources, not strictly parsing the initial FROM statement. Then JOIN refers to processing the (INNER|OUTER|CROSS) part, not strictly processing each JOIN clause.
Remember, this is logical order, not actual order, so think in terms of designing/diagramming rather than actually querying. I'd turn your question around: Since each step only has the information from previous steps to work with, how can you JOIN without knowing what you're JOINing ON?