It's not descriptors, it's the definition.
Horse is the word that means a member of the equine species. It does not distinguish on any characteristic other than species.
Foal is a word that means a juvenile member of the equine species; it distinguishes both species and reproductive maturity.
Filly is a word that means a juvenile female member of the equine species; it distinguishes species, reproductive maturity, and sex.
Colt is a word that means juvenile male member of the equine species; it distinguishes species, reproductive maturity, and sex.
Mare is a word that means adult female member of the equine species; it distinguishes species, reproductive maturity, and sex.
Stallion is a word that means reproductively capable adult male member of the equine species; it distinguishes species, reproductive maturity, reproductive capability, and sex.
Gelding is a word that means reproductively incapable adult male member of the equine species; it distinguishes species, reproductive maturity, reproductive capability, and sex.
These are all terms that convey a whole lot of information in a clear and concise way. We don't always incorporate all of the same meaning into our terminology - for example, we have a word specifically for a juvenile female bovine (heiffer), but not for a juvenile male bovine, which are just referred to by the general term "calf", although often modified as either a bull calf or a steer calf, depending on whether they've been castrated.
The point is that opinion has nothing to do with this. The terms aren't about feelings, they're about observable objective fact.