I think we have three sets of tags on SR:
(Please note that I don’t have good headlines for describing these groups as I’m not a native speaker; I hope the example tags make it clear, and please suggest better terms for describing them.)
Tags describing which attributes the software MUST have.
For example: linux, gratis, open-source, firefox-extension, offline, web-apps.
Similar to formal metadata.
It’s very easy to decide if the software matches (you shouldn’t even have to read the question to understand the intended meaning for these tags).
Tags describing the category of software.
For example: text-editor, software-development, web-browser, game, window-manager, antivirus.
Similar to informal metadata.
These tags are probably the primary way for experts to find questions that could need their expertise. But it might happen that answers recommend software of a different/related category: it’s about what OP’s need, and not necessarily what OP’s think they would need.
Tags that describe single features of the software.
For example: xmpp, html, c#, gps, markdown.
These lie somewhere between formal and informal metadata.
It may not always be easy to understand the intended meaning by just looking at the tag (e.g., "Should the software work with or only export Markdown?").
I think when the site grows, sets 2 and 3 will grow (broader as well as deeper), too. But set 1 should stay relatively stable.
I think it could be useful to outline set 1 and see if we can come up with some kind of "guide", i.e, rules when and how to use them. (We shouldn’t even try to do this for set 2/3.)
Related: I tried to describe set 1 in my question "Feature tags" only for required or also for optional features? (note that I used "feature" there for something different than in this question) and asked if we should only use tags from set 1 for MUSTs instead of SHOULDs and MAYs (I think, yes.).