Diese Tierbeleidigungen haben im Deutschen vermutlich zwei hauptsächliche Quellen. Zum einen die christlich-jüdische Abwertung mancher Tiere (v.a. Schweine und andere nicht koschere Tiere). Zum anderen die traditionellen Fabeltiere, die immer mit Werten und Charakterzügen verbunden sind. Man beachte, dass nur bestimmte Tiere als Beleidigung verwendet werden. Niemand beleidigt jemanden als zum Beispiel Eule, Pferd oder Löwe.
Schweinehund wird vermutlich eine Verbundung aus Schwein (Unsauberkeit) und Hund (Untreue) sein. Eine Herleitung vom Sauhund (eine Jagdhundrasse) scheint mir unglaubwürdig, da die Rasse vermutlich jünger ist als die Beleidigung.