EDIT: After discussion it is clear that trying to restrict the choice of tags is not the right way to guide tag selection. If there is ever considered to be a sufficient need for users to be more specific, it should be encouraged through hints visible to new users when posting. I believe the current system of tag description is flawed, in that if the user enters the tags too rapidly, the description of any tag is only shown until they begin typing the next one. I think the way to remedy this would be to have tag descriptions displayed continuously for each tag entered (for new users at least), or a pause when entering certain tags deemed to be problem causing.
Hopefully this would lack most of the drawbacks of mandatory OS tags, but rather than allowing the user to enter "windows" they would instead be prompted for a version, or allowed to specify that their question refers to all versions (for example a windows software question rather than a specific machine question.)
A transitional "windows-unspecified" tag (for editing old posts only) could be useful between "windows" no longer being selectable for new questions, and the old tag being eliminated from old questions. Obviously it may not be possible to establish which version was involved on posts from many years ago.
Ideally in tag searching there would be an option to search "windows-general" as either all windows version tags (as the "windows" tag does now) or to only search those tagged specifically "windows-general".
The overall upshot of this is that the question poster would be prompted to think and add the extra information if relevant, rather than submitting without this. The tag description of "windows" already explains this, but I believe many users will not notice in its current form.
I expect I have missed more than one important point but look forward to seeing what the community thinks.