But the horns are specifically demon horns, not cow horns (I assume these are differentiated in code due to the appearance screen being able to describe demon horns as "heralding demonic taint") ; they should not count for the bovine score. The wiki also claims there is a difference between hooved equine legs and hooved bovine legs; equine legs should not count for the bovine score at all, despite having hooves.
I didn't expect a demon-satyr race name to show up (chimera or maybe at a stretch marefolk was the most I expected), but cowgirl is just incorrect regardless of how it's sliced.
It sounds to me that the race descriptor casts a far too wide net, so you catch a ton of false positives. In the example you give with a stock human/catgirl given canine ears and tails, I'd say that neither of them should be called lupines, but neither should be catgirls either (since, both examples lack the crucial defining element of catgirls, namely cat-ears and cat-tail with the rest being mostly humanoid). Since lupine ears and lupine tail should not count towards a catgirl score, both example should have equal racial scores in all aspects, and would proobably be best described as "human" or maybe "chimera" (though that depends on how low you want to define the chimera bar I guess)
>The only thing missing to be 100% catgirl is your ear type and tail type, after all.
IMO, this is a really strange way to put it... It makes it sound like the only important part is that htey have the same class of part, not what type that part actually is. As if you could take a human, give him equine legs, equine tail, equine face, equine ears, and demon horns, and call the result a "minotaur" because it has hooves, a furred tail, a muzzled face, animalistic ears and a form of horns... Which I suppose is basically what happened in my save, execpt I didn't have an equine face or ears.