от:max rosenfeld
Могу предположить, что это как-то связано с историческими, очень давними названиями животных в разных языках.
У нас, например, есть слова кот и кошка. В английском слово cat обозначает и кота и кошку. Но если нужно сделать акцент на поле животного, то это уже tom-cat. Так ж и с другими животными.
Так что я голосую за историческое и лингвистическое объяснение этого момента.Подробнее
Мой вариант гораздо проще.
Если животное большое - мужской род. Если маленькое - женский.
Подтверждается с очень большой точностью. Процентов 80.
Кит, слон, верблюд, медведь, тигр, зубр, лев, волк, удав,
Кошка, мышка, белка, гусеница, бабочка, змея.
Противное - тоже чаще мужской род. Жук, червяк.
Миленькое - чаще женский. Бабочка, гусеница, божья коровка, морская свинка.
А явно иностранные слова - перешли как есть. И их род был назначен - куда больше подходит по звучанию.