With castes, you can basically define nearly as much as you want in specific castes of a creature, to the point where you can define almost entirely different kinds of creatures to be technically the same "species".
For example, I once did a mod where dwarves, minotaurs, spiderish humanoids, and serpent-people were all the same species. They all had radically different bodies, but would share the same fortress.
Castes are normally used to define genders, and that's it, but you can also do things like mod in "birth defects" or "rare chosen ones" or the like by making different castes have different chances of appearing - giving weights of 999 to the "normal" male and female castes, and then having a "birth defect" or "chosen one" which is a different kind of creature with only a 1 weight for each version of the gender would leave you with a .1% chance of that particular kind of creature being born.
Unfortunate limitations are that you cannot set custom graphics for different castes, you cannot easily identify different castes unless you set them to having different caste tiles, and do not use graphics, you cannot differntiate types of clothing each caste wears (so your serpent people will wear shoes on their tails), and you have no control over what castes will be born to which castes (so a minotaur and a dwarf that get married could give birth to a serpent-person). You also cannot set megabeasts to be a caste (it's creature-level), and there are a few other limitations, like having to define materials in the creature level.