It is my understanding (correct me if I am wrong) that many homophones develop as a result of phonemic mergers.
For instance, I, like many Americans, have a "cot-caught" merger where I do not make a distinction between the "au" and the "short o". This means that for me "caught" and "cot" are homophones, as are "Don" and "Dawn".
A non-English example would be a "Kaf-Qof" merger in Hebrew where כּל ("kol" meaning "all") and קוֹל ("qol" meaning "voice") are both pronounced "kol".
My question is: Is there a tendency for the number of homophones in a language to increase over time? It seems like once a group of people stop making a distinction between two phonemes, it is very hard for them to start making a distinction again. That would imply that older versions of a language had fewer homophones and more recent versions more.
I am reluctant to buy into the hypothesis stated above because many trends in languages are cyclical with a frequency in the thousands of years. For instance agglutinating vs. isolating; it is likely that languages are one, then the other, then back again. If homophone frequency only increased over time, we would all only be grunting identical sounds after several thousand years.
The most obvious counterweight to the mergers is comprehensibility. If too many mergers occurred, the language would become more and more difficult to use to communicate. This implies a limiting factor, but it does not really explain why we haven't inherited mergers and sets of homophones from (say) three thousand years ago. Is there a counteracting force where people make (possibly new and different) distinctions between previously identical phonemes to undo some of the mergers and make what were previously homophones become unique? If so, what is that phenomenon called?