There are (non-SEO) reasons to vary anchor text:
1) Context: "Blue Widgets" is great anchor text, unless it is in list of Widgets, in which case you probably want to say "Blue" and forget the redundant "Widgets"
2) Alphabetical indexing: In your alphabetical list of products you might want to have "Blue Widgets" and "Widgets (Blue)" so that users can find your product either way.
3) Extra descriptiveness: Sometimes you might have to say what it is for: "Blue widget for Cleaning"
4) Multiple Taxonomy: You may have blue widgets listed in multiple categories. If this is the case you might need to describe them differently "Blue widgets for cleaning your car" vs "Blue widgets for cleaning your kitchen sink". In some cases products are just called slightly different things depending upon use.
5) Synonyms: If there is more than one name for something, you might have to link to it different ways, even in the same menu.
6) Different editors: You have multiple editors working on the site that are free to make editorial decisions.
7) User generated content: users will certainly link to stuff differently if you let them create content internally. One site that I worked with even had user created lists of products and users often edited product names in those lists for consistency or brevity.