Nico, unfortunately, tags can make sense only within the context of a specific module, i.e. featureA got introduced into moduleX. Because module development is entirely bazaar style, it would be very hard to keep one central repository of tags for the thirds party modules. I like one version to rule them all, but don't think we can be as flexible with it.

Brad, I agree with the overall drawbacks of having a version system, but the only alternative is to have a converting layer on top of the regular API that will change things on the fly if the request had a different version number. This would solve the hypothetical security issue - only one API to check, but will more likely cause stability problems - it is much easier to mess up in the additional layer than in the specific module that understands the change.