Названия животных в любом языке восходят к самым древним временам. И именно поэтому в них часто отсутствует какая-либо логика. Ведь когда древний человек дозрел до одомашнивания животных, он еще не имел способности строить какие-либо сложные логические конструкции. Поэтому называл как называлось.
Тут даже можно больше сказать. Чем раньше было одомашнено то или иное животное, тем более нелогичное название оно получило. В самом деле: вот есть бык, но его "жена" - почему-то корова, а не бычиха. А их потомство – вообще телята. Где логика?
Есть конь, но его "жена" - почему-то лошадь или кобыла. Но не кониха. А потомство их – почему-то жеребята, а не конята. Схема "слон – слониха – слонята" - это нормально, а "конь – кониха – конята" - нет.
А вот более поздние примеры: "кот – котька (ныне – кошка) – котята". Или "кур (=петух) – курица – курята" (слово "куренок" вполне себе существует). Тут логика уже присутствует. Причем заметьте: первая группа животных (которые нелогичные) характерна для скотоводческого и кочевого хозяйства. А вот вторая (логичная) - она уже характерна для хозяйства оседлого. Хозяйства более сложного и требующего более развитого мышления.
Собака в этом ключе представляет собой переходный случай. Что-то среднее между первой группой и второй.
При этом, никто до сих пор не знает этимологию слова "собака". Одни выводят ее из скифского языка, другие – из персидского, третьи – из тюркских языков. Но точного ответа никто не дает до сих пор.
Хотя на самом деле, этимология здесь может быть очень простой. Надо просто понимать принципы развития языка. На самых ранних стадиях развития, одним из важных источников для создания слов было звукоподражание. По-гречески это называется ономатопея (хорошее слово: если выучить - можно сойти за академика). Потому что тогдашний человек еще не имел столько мозгов, чтобы придумывать слова с нуля самостоятельно – а на подражание у него мозгов уже хватало.
Примеры такого звукоподражания: мяукать, чирикать, кудахтать, гавкать. Человек слышал разные звуки и пытался их связывать с источником этих звуков (по-китайски кошка до сих пор будет "мао" - не тот, который Цзедун).
Название "собака" - это, видимо, то, как древний человек расслышал собачье гавканье: б(х)а(у) - б(х)а(у) – к(х)а(у) – к(х)а(у). По-латыни собака, кстати, будет канис. А по-древнегречески – куон. Причем в обоих случаях присутствует звук "к" с гласной. Причем возможно, что в те времена звук "к" произносили с придыханием – "кх". Что не противоречит предложенной версии.
Но откуда же к слову "бхау-кхау" добавилось вот это вот "со"? - Это результат уже более современных процессов. В Древней Руси была такая приставка "су". Означала она сочетание, смесь. Соответственно: сурожь (смесь сортов ржи), супесь (смесь песков), суглинок (смесь глин).
Звуки "о" и "у" во многих языках взаимозаменяемые. И славянские – не исключение. Особенно если в неударной позиции. Поэтому можно предположить, что впоследствии это слово стало звучать как "су-бхау-кхау" - то бишь, смесь собак.
Смесь собак - это несколько странный образ. Но если это понимать как "вместилище разных собак" (например, в одной самке), как результат смешивания нескольких пород, то все становится очень логичным. В конце концов, кто в те времена стал бы следить, от кого самка щенков нагуляла? Отцов-то могло быть много – тогда ведь специальной селекции не велось. А самка – одна, вот она эту смесь и произвела на свет. По ней эта смесь и определялась. Так и получилась со-бака, в современном произношении.
Здесь мы как раз имеем переходный случай: когда название животного еще определяется какими-то первобытными представлениями, но элементы логики в этом уже присутствуют.