Generalizing the /mob code is *good*. Editing monkies to add features is not.
Example: Creating a new concept of clothing styles, and limiting what mob types can wear each style is a good thing, and can easily adjusted to allow monkey clothes and disallow AI clothes, in turn allowing the clothing system itself to be removed from /mob/human and put into /mob. Then, at a later date, if we add a specific race of dwarves, it would take very little to add dwarf-sized clothing. Bonus: Have overlap between dwarf-clothing and monkey-clothing, but only sometimes.
A further use would be robots that can have clothing-based armour and platings with different stats, where most of the work is already finished by the hypothetical generalized clothing system.
Now, coding monkey clothing and code for monkeys to wear clothing? That *is* a waste of time.
Similarily, a more general body part system would eliminate huge nested if blocks if there was an easy way to iterate over body parts, improving code overall, and with a generalized system, it would be easy to add a monkey's tail as a unique non-grasp, non-support limb. Once again, for a robot, you could use it as well, counting each tread/track as a limb, the base as one, and each major component, all without having to recode everything or copy most of the code.
Further possibilities: Store critical /var/ in a /obj/ including health and such, so that changing /mob/ type will not affect those vars, and they can be transfered in one line.
Later, defining new types of that object becomes a possibility, and that object can control things like AI(not *the* AI, but real artificial player code) to make things easier for later changes.