Understanding Variations on Multiple Joins
You can't randomize them, the order is important. Maybe you can see it clearer if we add a few parenthesis between the joins.

SELECT
    c.id
FROM
    customers c
        JOIN (sales s JOIN saleitems si ON s.id = si.saleid)
    ON c.id = s.customerid


What this query is doing is joining first sales with saleitems and then their result is being joined with customers. You can't reference a customers column inside the parenthesis join because it's not accessible:

SELECT
    c.id
FROM
    customers c
        JOIN (sales s JOIN saleitems si ON s.id = si.saleid 
            AND c.id = c.customerid) -- What is c.customerid here??



  Msg 4104, Level 16, State 1, Line 6 The multi-part identifier
  "s.customerid" could not be bound.


If you ask me, I'd stick with the first way of writing the query, it's way clearer for most programmers that way.