Q:

How to handle tags with multiple meanings? 

The tagging system doesn't support (as far as I know) a tag to be "separated" into two tags.  For example, the Flex tag on SO currently has questions on Flex and Flex.  I'm sure there are more tags that have this problem. 
How would you suggest splitting tags in this case? 

A:

The question body asks about the Flex-specific case, but the title asks about the general case.  Since the existing answers primarily address the specific case, I'll answer for general:
Post a separate question here on MSO for each ambiguous tag.  These issues actually come up frequently enough that we have the tag ambiguous-tags here to describe them. ( Even the Flex-specific case has come up at least three times.) 
Every individual case will be different; some will have two meanings with roughly equal popularity/importance; others will have multiple meanings with one clear "dominant" meaning; and yet others will have one legit use and one inappropriate use (e.g. using). 
We need human subject matter experts to decide how to split things. 
(That's "human [subject matter experts]," not "[human subject matter] experts.") 

A:

It wouldn't be the first time where we took a tag, and renamed it to be more specific.  The 'code-golf' tag used to be just 'golf', but after I found out that someone had tagged their golfing question ( as in the sport ), with the golf tag, I asked for it to be changed. 
My suggestion is that if there aren't very many that are referring to gnu flex, for the tag to just be moved wholesale to the 'adobe-flex' tag.  Then go through and remove the tag for any questions that actually referred to the gnu flex.  The beauty of this solution is that other users will notice the problem and retag some of the questions for you. 
If there are many of both, then my suggestion is a bit more time consuming.  Go through all of the questions tagged 'flex', and for the ones for adobe flex, tag it 'adobe-flex', and tag the other ones 'gnu-flex', until there are none tagged 'flex'.  Like I said, time consuming. 
Hopefully when you are done, nobody will use the 'flex' tag.  It seems to have 'stuck' for the 'golf' => 'code-golf' retag, there currently aren't any tagged 'golf'. 

In this case, it could be fairly straight forward to separate them, most of the ones referring to Adobe flex, usually have the word Adobe, somewhere in the question it-self.  So you could, for example, have a special tag splitting feature, that takes the tag to split, the two tags to split it into, and a regex, or two, to determine which questions go into which tag. 
I doubt that this feature has been created, but I think it is doable. 

Now for whether there is even a problem, I think there is.  The main point of tagging questions, as I see it, is for people who answer questions, to be able to find questions they can answer.  If everything under the sun has the same tag, that to me is the same as not having a tag at all. 
Having them under the same tag is a source of confusion, and grief that we can very easily eliminate, by moving them into separate tags.  We could just move out the ones referring to the flex lexer, but what is to stop a new user from misusing the tag?  If a new user comes and asks a question, they will see the 'flex' tag, and the 'gnu-flex' tag.  They will probably not even realize that the 'flex' tag does not refer to what they think it does, and use both tags.  Which is essentially the same as not even doing anything. 
I do not think we should have any tags that could be mistakenly used for more than one thing.  Any tag that can be mistakenly used, will be mistakenly used.  So unless you actually want people to use the wrong tag, they should be specific enough that there is little chance of them being mistakenly used.