SQL Server certainly doesn't calculate the cartesian product for every join and then filter it, what it does do is take your SQL statement with left, right, inner.... whatever join type you have specified, then the optimizer will make a decision based on the statistics that are present on the table on what physical join operator to use.
There are 3 physical operators:
- Nested loops join
- Merge Join
- Hash Join
All 3 have their own ideal scenarios where they are best used (I'm not going to explain them here, there are loads of articles on each of these), and it mostly depends on the cardinality estimate for each table involved in the join and the statistics on how many rows the optimizer expects to get back as to which one is used.
Craig Freedman has a great series of blog posts discussing how joins work in SQL server which are all here:
I would recommend looking at the bottom 5 articles in that list, which include an introduction to joins, a summary of join properties and then reasonably in depth information on each physical join operator.