Looking at the latest version of drupal 4.7b3, there are two relationships among terms: relatedness and synonymy. Since 4.7 appears to support tags and possibly user-defined keywords, I think the notions of relatedness and synonymy should be analyzed very carefully.
First on relatedness, I think this feature is currently implemented "correctly". That term A is related to terms B and C implies terms B and C are related to A. But B is not assumed to be related to C.
On synonymy, I think this notion must be rectified by Drupal before it can be applied effectively to a loosely (user-) defined folksonomy or tagging application. Currently, synonymy is NOT even symmetric. Term A is set to be synonymous to term B, but Drupal can not derive that term B is symmetrically synonymous to term A.
I suggest that synonymy be implemented as follows:
+ Assosciated to each term is a set of senses. In each sense, a term can be caterogized to be synonymous to any number of terms in the vocab.
+ All terms synonymous in a sense must be mutually synomyous to one another.
For example, in the creation of a new term "chair", I can define two senses for this term. In the first sense, I define that the following 4 terms are synonymous to it:
# S: president, chairman, chairwoman, chairperson