Language is dynamic; for instance the words wicked, bad and sick all now have positive connotations in some circumstances. I think that, dependent upon the context, people clearly have an understanding about what they mean when using a particular word, but problems arise when there is a lack of consensus regarding meaning.
Personally I don't have a problem with people using the word 'hero' to describe a football player simply because I make the assumption that people can, and do, differentiate between the traditional meaning and a looser, more modern application. The difficulty comes when I have to teach the English language to foreigners and explain that a word can have two diametrically opposed meanings (i.e. wicked), or that some words do not have shared understandings.