There are two ways to search for tags: the "all" view and the "search" view.
The "all" view has a fast, search-as-you-type mechanism that will show you the tags matching our keyword in their name and description. This is useful if you remember part of the name of a tag and you want to look it up.
The "search" view is a different kind of search, designed to answer questions like "what tag can I use for a package that is like this?". In fact what it does is sneakily search packages instead of tags, and then it cleverly turns the results into a tag suggestions.
The tagging hints come from various sources: one is a hardcoded set of general rules (that you can view at the end of debtags.js in the commentTagset function), the other is a set of hints computed every 6 hours by running some statistical analysis of the tag database.
The tagging hints are generally right, but in some cases they are not. If you get some wrong suggestion, it is probably because the package fits in some corner case. Corner cases are the reason why these statistical analysis do not add the suggested tags directly, but they just give hints.
Some wrong hints are generally bound to stay: there is no way to hide a wrong hint, but it's ok to just leave it there. However, the suggestions are updated every 6 hours: if a hint gets contradicted more and more often, the confidence percentage will become smaller and smaller and the hint will eventually disappear. When you leave a wrong hint there, you are in fact teaching something to the statistical engines.
Q: We have a lot of -ruby pkgs which are metapackages that install the library for the current ruby version (depend on their -ruby1.8)... Does this lib have role::dummy only or also role::devel-lib?
A: I'd go for role::dummy plus all the tags that the target packages would have: after all, you definitely want that package to show up when you look, for example, for "development libraries for Ruby".
Q: Many ruby/python/perl library packages provide a shared library, but you use these packages to develop software as well: are they also devel::library?
A: Since you use them as development libraries, tag them as such: their main role in the system is to be development libraries, and it does not change if they do that by providing a shlib.
When you are tagging, consider the facet as a question: "What does the package look like from this point of view?", and the tag as the answer to that question.