Little known fact: Support for changing the size of body parts using a syndrome is already in the game. BP_APPEARANCE_MODIFIER not only allows you to change the description of a target, but if you change LENGTH, WIDTH, or HEIGHT, the altered size of the body part will have an influence on combat calculations.
Tissue layer growth based on age is also in the game. It is used for hair.
The question of metamorphosis has come up before, and Toady has mentioned wanting to implement it. By combining these two things that are already in the game, it should be possible to do so.
Basically, there should be a tag similar to TISSUE_LAYER_APPEARANCE_MODIFIER, but as BP_APPEARANCE_MODIFIER instead. The APP_MOD_RATE, might be be based on a percentage of the body part's 'normal' size (according to the unmodified body plan of the creature) instead of being an absolute value like tissue layers have.
The second rule is as follows: Any body part or tissue layer with a size of 0 should be regarded as if it is missing; the part cannot be targeted, damaged, or used for attacking.
Let's use a toad as an example. A toad's metamorphosis from a tadpole to an adult involves it losing its tail, and growing legs. The base creature's body plan should therefore have both a tail and legs.
At birth, the size of its legs are 0% and therefore do not exist - just like humans do not have beards until they reach a certain age. When the tadpole reaches a particular age, its legs start growing, reaching 100% of their final size after several days. At a slightly later point, the tail begins shrinking, ending up at size 0 when the toad is an adult.
Adding and removing body parts from the body plan without completely rebuilding a new body is probably very hard from a programming perspective, but this should be both simpler and more realistic.
It should also be possible to alter the size of tissue layers with syndromes, or remove body parts or tissue layers entirely by reducing their size to 0. Certain creatures can also be given extra body parts that start out with size 0, so that syndromes can 'add' them back by altering their size. This is functionally similar to the long teeth of vampires.