Тема очень интересная и хотелось бы увидеть ответ специалиста, но несколько идей могу предложить:
Ребёнок в древности – это экономический объект, с одной стороны лишний рот и обязательства, с другой – будущий работник или невеста для породнения с другими семьями (тут у разных культур по-разному). Соответственно, детей зачастую ждали и берегли, строили на них какие-то планы с рождения. Поэтому имя могло даваться с целью "запрограммировать" ребёнка на успех – силу, здоровье, красоту. А для мистического сознания большинства культур самый простой способ такого программирования – обращение к духам, предкам, божествам и, позже, святым.
То есть, условно, первые имена были совсем описательные, как у греков – Андрос – "мужчина", Теодор – "дар бога". Потом стали их усложнять – как для отличий, так и для усиления эффекта – Александр уже "мужчина-защитник". Потом начинают называть в честь кого-то: деда, правителя, героя.
Или "Ксения" – "чужая", подходящее имя для неродной дочери – а потом одна из Ксений становится известной и имя превращается в "нормальное". Когда детей много, над младшими можно и поэкспериментировать, дать им какое-то выдуманное имя.
То же у коренных американцев – имена давались по природным явлениям и животным, чтобы дать ребёнку соответствующую силу. Потом "успешные" приживались.
Не стоит забывать, что большое разнообразие имён – продукт более поздних эпох, подъема индивидуализма. До того было достаточно, чтобы детей не путали между собой, и то можно было приделать к имени прозвище и порядок. Выдающиеся люди обычно брали псевдонимы, назывались по городу происхождения или по "фамилии". А вот когда люди начали осознавать, что каждый человек – уникальная личность, возникла потребность в большем разнообразии имён, которое мы имеем сейчас.