質問の「同音異義語」の出来方には,3つの可能性があると考えています.(1) 異なる2語だったものが発音上合一してしまった,(2) 1語だったものが意味上分化してしまった,(3) たまたま同じ発音の別の語ができてしまった.
私の専門は言葉を歴史的にみることですので,標題の質問を「同じ発音なのにまったく意味の違う言葉が存在するに至ったのにはどのような経緯があったのでしょうか?」とパラフレーズさせてもらいます.なぜ存在するかというよりも,なぜ存在するに至ってしまったのか,という風に考えるほうが,具体的な議論もしやすくなります.以下,日本語でも英語でも他の言語でも,まったく同じように考えることができます.
(1) 異なる2語だったものが発音上合一してしまった
どの言語でも,発音の変化というのは避けられませんし,実際,頻繁に生じています.もともと異なっていた2語が,発音変化の結果,合一してしまうということもよくあります.
火事(クワジ)と家事(カジ)は古い表記からわかるとおり,もともと異なる発音でしたが「クワ」→「カ」(合拗音の消失)という変化により,両語が同じ発音になってしまいました.英語の last (最後の)と last (継続する)も,千年ほど前には母音が異なっており,2つの別々の語だったのですが,歴史の過程で母音が合一してしまいました.
(2) 1語だったものが意味上分化してしまった
単語の意味の変化も,発音の変化と同じように頻繁に生じます.通常,古い意味と新しい意味は何らかの点で関係しているものなので,意味変化もそれと分かることが多いのですが,意味変化が連鎖的に繰り返されていくと,出発点と到着点の意味に関連性を見いだすのが難しくなります.
例えば,容器の「壺」と急所の「ツボ」は,語源を探れば同一語の派生義です.もともと「くぼみ」ほどを意味していたこの単語は,形状の類似から容器やお灸を据える体の部位の意味を発達させ,後者から「急所」の意味を派生させました.出発点と到着点の意味が離れすぎているので,現在では別々の語という感覚が一般的なのではないでしょうか(だからこそ表記も「壺」と「ツボ」と分けているわけです).英語の flower 「花」と flour 「小麦粉」も,もともとは同一語だったのですが,著しい意味変化の結果,関連づけが難しくなり,別々の語とみなされるようになりました.
(3) たまたま同じ発音の別の語ができてしまった
どの言語にも,使える音(音素)のリストがあり,さほど多数ではありません.また,その音素の組み合わせ方にも規則があるので,すべての単語に独自の異なる語形(発音)を与えることはできません.単語を多く作れば作るほど,既存の単語と同じ発音のものが出てきてしまうのです.橋(はし)と箸(はし)などがその典型例です.関連する例としては,すでに「牡丹」という単語があったところにポルトガル語から「ボタン」が入ってきてしまったというようなパターンもあります.
最後に,同音異義語はコミュニケーションにとって不利のはずなのに,これまでの間に淘汰されずにいるのはなぜかという質問に回答します.
1つは,区別化の試みはそこそこなされてきたということです.「壺」と「ツボ」の表記,flower と flour の綴字,橋と箸の(共通語における)アクセントの違いなどが,その試みの跡です.ただし,そのような試みがなされ,ある程度成功したとしても,別のところで上記 (1), (2), (3) の理由により,新たな同音異義語が次々と発生しているので,いつまでたっても全般的な淘汰には至らないということです.
もう1つは,もっと本質的な回答となりますが,実は同音異義語はコミュニケーションにとってさほど不利ではないということです.ほとんどの場合,文脈の支えがあるために,いずれの語・意味として用いられているかが自明だからです.例えば I'll give you a ring. が「指輪をあげるよ」なのか「電話するよ」なのかが曖昧なシチュエーションは,想像するほうが難しいですね.同音異義語は,思われているほどにはコミュニケーション上の問題とならないのです.
flower/flour については「flower (花)と flour (小麦粉)は同語源!」をお聴きください.last についてはこちらの記事をどうぞ.