JOIN a une priorité plus élevée qu'une virgule, donc votre deuxième instruction est interprétée comme (notez les parenthèses que j'ai ajoutées) :
select sched.id, max(txn.dttm), acc.id
from PaymentSchedulePeriod sched
,(PaymentSchedulePayment pay
right outer join AccountTransaction txn on pay.accountTransactionFk=txn.id
right outer join Account acc on txn.accountFk=acc.id)
where sched.accountFk=acc.id
group by sched.id, acc.id
Voir aussi :Règles de priorité JOIN selon SQL-99