Uma boa forma de compreender quando e por quê se usa ⟨am⟩ ou ⟨ão⟩ é saber de onde estas duas terminações vieram.
O som em final de palavra /-ãw̃/
, representado na ortografia pelas duas terminações ⟨-am, -ão⟩ (na realidade, pelos 4 grupo de terminações ⟨-am, -ão/ões, -ão/ães, -ão/ãos⟩) possui origem em 3 grupos etimológicos de terminações distintas no Galego-Português (ou Português Antigo); cada uma variando em tonicidade. Estas três terminações eram ⟨-on, -an, -ão⟩. Explicarei cada uma delas com exemplos indicando a evolução da palavra desde a forma latina, à forma em galego-português, até a forma no português moderno.

Primeiro grupo etimológico
O primeiro grupo etimológico é formado por palavras que, no galego-português, possuíam a terminação "-on" (pronunciada /õ/
), derivada das terminações latinas "-on/-ont/-onem, -un/-unt/-unem". As palavras deste grupo possuíam 4 realizações, das quais todas são atualmente grafadas com ⟨-ão/-ões⟩; exceto as polissílabas não-oxítonas, que são atualmente grafadas ⟨-am⟩.
LATIM > PT ANTIGO† > PT MODERNO
Monossílaba tônica: sunt > son > são (verbo, ser)
Monossílaba átona: non > non > não
Polissílaba oxítona: sermonem > sermon > sermão
Polissílaba não-oxítona: fuerunt > forom/foron > foram (verbo, ir)
†A ortografia do galego-português não era regular, e variava de autor para autor, época e lugar.
Exemplos: "sermão/sermões", "ação/ações", "lesão/lesões", etc.
Os raros nomes polissílabos não-oxítonos desta etimologia convergiram com o terceiro grupo etimológico. Por exemplo, a palavra galego-portuguesa "bẽeiçon", do latim "benedictionem", deveria fazer parte deste grupo etimológico; porém, sua forma moderna "bênção" migrou para o terceiro grupo e comporta-se como tal, tanto ortograficamente (sendo escrita com ⟨-ão⟩) quanto morfologicamente (indo ao plural como "bênçãos", em vez da forma antiga "bênções").
Segundo grupo etimológico
O segundo grupo etimológico é formado por palavras que, no galego-português, possuíam a terminação "-an" (pronunciada /ã/
), derivada das terminações latinas "-ant/-anem" (e raramente "-am", somente em monossílabas, creio eu). As palavras deste grupo possuíam 4 realizações, das quais todas são atualmente grafadas com ⟨-ão/ães⟩; exceto as polissílabas não-oxítonas, que são atualmente grafadas ⟨-am⟩.
LATIM > PT ANTIGO > PT MODERNO
Monossílaba tônica: canem > cão/can > cão
Monossílaba átona: tam > tam/tan > tão
Polissílaba oxítona: stant > estam/estan > estão
Polissílaba não-oxítona: cantant > cantam/cantan > cantam
Exemplo: "cão/cães", "pão/pães" etc.
Os raros nomes polissílabos desta etimologia convergiram com o terceiro grupo etimológico. Por exemplo, a palavra galego-portuguesa "refran" deveria fazer parte deste grupo etimológico("-an"); porém, sua forma moderna "refrão" migrou para o terceiro grupo e comporta-se como tal, tanto ortograficamente (sendo escrita com ⟨-ão⟩) quanto morfologicamente (indo ao plural como "refrãos", em vez da forma antiga "refrães").
Terceiro grupo etimológico
O terceiro grupo etimológico é formado por palavras que, no galego-português, possuíam a terminação "-ão" (pronunciada /ão/
), derivada da terminação latina "-anum". As palavras deste grupo possuem 3 realizações, das quais todas são atualmente grafadas com ⟨-ão/ãos⟩, sem exceção.
LATIM > PT ANTIGO > PT MODERNO
Monossílabo tônica: manum > mão > mão
Monossílaba átona†:
Polissílabo oxítona: germanum > irmão/yrmão > irmão
Polissílaba não-oxítona: organum > orgam/órgão > órgão
† Devido à forma pela qual este grupo etimológico se desenvolveu a partir do latim, não haviam monossílabos átonos nesse grupo.
Comentários à etimologia
Figuras de linguagem (como por exemplo, na frase "a votação resultou em 40 nãos", a substantivação e pluralização de "não") fogem à etimologia. Erros gramaticais, como conjugar advérbios ("As tãos sonhadas casas"), também vão além da etimologia.
Apesar de no português padrão todas essas terminações serem todas pronunciadas /-ãw̃/
, alguns dialetos ainda mantêm a pronuncia de formas históricas. Por exemplo, o dialeto da costa norte brasileira mantém a pronúncia de monossílabos átonos e palavras não-oxítonas do primeiro grupo etimológico ("-on"), pronunciando-as como o "-o" átono nasalizado (/ʊ̃ ~ ũ/
) em vez de /-ãw̃/
. Neste dialeto pronunciamos as duas últimas palavras da frase "A volta dos que não foram" como /nʊ̃ foɾʊ̃/
(ou até mesmo /nʊ̃ foɾʊ/
, com a última vogal desnasalizada) em vez do padrão /nãʊ̃ foɾãʊ̃/
.
Realização ortográfica
A partir das etimologias, é possível identificar se uma palavra é escrita com ⟨-ão⟩ ou ⟨-am⟩ no português moderno pelas quatro regras ortográficas seguintes. Como qualquer regra ortográfica, estas só valem para palavras nativas. Van (ou vam, uma adaptação ortográfica muito usada, apesar de incorreta), da abreviação inglesa de caravan (um tipo de carro), foge desse regra, por não ser nativa.
Todas as palavras monossílabas são escritas com a terminação ⟨-ão⟩, independentemente da etimologia. Por exemplo: "não, vão, cão, são, mão". No português moderno padrão, essas monossílabas não variam em tonicidade (são sempre tônicas), exceto nos dialetos que conservam os casos átonos (ver seção anterior).
Todas as palavras polissílabas oxítonas são escritas com a terminação ⟨-ão⟩, independentemente da etimologia. Por exemplo: "fogão, estão, nação, alasão".
Todos os nomes polissílabos não-oxítonos são escritos com a terminação ⟨-ão⟩, independente da etimologia, devido às convergências ao terceiro grupo. Por exemplo: "órgão, refrão, bênção, sótão".
Todas as palavras polissílabas não-oxítonas que não são nomes (todas flexões verbais) são escritas com a terminação ⟨-am⟩. Por exemplo: "cantam, foram, enxáguam". Como esta terminação não é usada em nomes, ela é invariante em número nominal, ou seja, a terminação ⟨-ans⟩ para indicar plural não existe em palavras nativas, somente em estrangeirismos como "vans, slogans".