Personally I would avoid using flags except to denote country, not language, for reasons like what Zeno gave.
Honestly, I have a difficult time finding offense to using a flag as a link for language on the internet because it's, you know, the internet. A flag stands for many different things for many different people depending on how it's being used at the time. I doubt many people will see a small American flag at the bottom of, say, a website in French along with several other flags and think "I'm not clicking on that because the USA supports uncontrolled HFC's into the atmosphere and I just can't support that!"
I suppose, though, that if you're wanting to be the Poltically Correct type then having just a link that is the name of the language in that language is what I find the best. Really – and I get to sound off from a high horse and admit that I'm on the high horse – language barriers are never really a problem in sites that I visit, so I'm not the best authority to answer the question.
I agree that using flags to represent languages are just logical mistakes. Obviously a country is not a language. Nor should you need to know a flag representing a language to select it. Maybe I want japanese but have no clue what their flag is.
However, I disagree that functionally its that big of a deal. And the politically correct argument just makes me want to support the idea more.
In any event, I would just go with a drop down list of languages expressed in said language.