I do this style too, but think of each new row as basically a new table being added to the query (especially if it's a query, which may go over several rows and is indented):
from
alpha a
inner join beta b on b.id = a.id
left outer join gamma g on g.id = a.id
left outer join (
select z.id, count(\*) as cnt from zeta z
) delta on delta.id = a.id
where
...