То, что слова, одинаковые по звучанию, но различные по значению, называют омонимами, думаю, знают в все:)
А вот почему слова имеют различные значения, многие и не задумываются. Как бы так надо - как положено, так и покладено:)
Чаще всего больше чем одно значение имеют слова заимствованные из других языков. Таких слов много.
"Хорошее дело браком не назовут".. Взято у поляков и немцев ещё во времена Петра I. Плохая работа/качество и союз двух людей.
"Хорошая мина при хорошей игре". Знакомое выражение?:) Франция. В первую очередь снаряд, во вторую выражение лица.
Бот. Взято давным-давно у поляков - у них имело прямое отношение к сапогам. В то же время голландцы называли так парусные суда небольших размеров.
Или бокс - Англия. Это и вид спорта, и отдельное помещение.
А бывает наоборот. Основное слово русское, а альтернативные значения взяты из других зыков. Такие, как горн - печь для обжига у русских, а у немцев - духовой инструмент. Бор - сосновый лес у русских, а как химический элемент пошло от персов - бурА, одного из соединений бора.
Мне кажется, что появление омонимов произошло из-за того, что словарный запас имеет некие рамки. Не придумывались новые слова, а появлялись новые значения. То есть язык поэтапно шел не в количественную сторону, а в качественную.