Choosing a correct word from the many words with the seemingly identical meaning (synonyms) is one of the biggest challenges for non-native speakers. Why human languages have synonyms? If the work that language does is to label objects, why put more than one label on one thing? Does it mean that the human language is excessive?
My response is that by no means the language is excessive. The reason for synonymy is that naming things and describing reality is not the only work that human language does. Language is the perfect, flexible tool for communication. When we talk to each other, we not only describe the situation (reality), but also put this situation into the context. We make our speech adequate to the circumstances. An article in the science magazine and a quick conversation between two fellows can refer to one and the same thing, but use absolutely different vocabulary. In the Russian language, we call it “speech styles”. In one situation, the word “pupil” would sound better than “student”, in the other, “student” would sound adequate, while “pupil” wouldn't fit the context. So, often synonyms have the identical meaning, but belong to different styles, and can be used in different contexts. The super-goal for non-native speakers is to master the language to the degree, that the subtle nuances of meaning are clear, and the choice between synonyms is not a problem any more.
So far, the situation doesn't look too dramatic. A word has its “real” meaning and may have some stylistic connotations, so what's the problem? Check to see whether the word is neutral and use it freely, memorize that this or that word is informal (scientific, rude, poetic) and use it with caution. This is true, but the problem with synonyms doesn't end here.
A few days ago, in one language forum I found a very interesting question from the student that is learning Russian. He question was, what is the difference between “тут” and “здесь”? Both words mean “here” , so my first thought was to reply “There's no difference, they are complete synonyms” (this is actually what most Russians replied there). But then, I recalled the golden rule that I was taught when being a student: There's nothing excessive in the language, if there are two words for one thing, there should be the reason, why the language needs both. Naturally, I checked whether there is any difference in styles for these words. Some forum members did the same and answered, that “тут” is more informal and colloquial, while “здесь” is more formal. I double checked a dozen of dictionaries and found that stylistically speaking, both “здесь” and “тут” are neutral, and can be used in any context, formal, informal — any!
“What mysterious words!” I thought and started searching for scientific articles regarding this topic. At last, Lady Fortune smiled to me, and I found a brilliant article about these two words by professor M.G. Bezyaeva. Besides nominative (“real”) meanings and stylistic specifications, Dr. Bezyaeva marks out the communicative level of the language. It may sound scaring, but in fact, this means a very simple thing. When speaking, we describe some situation (labelling things), but also describe our attitude toward the situation and express our wishes, fears, wills and so on. To my luck, she illustrated this idea with the two words — “здесь” and “тут”. Dr. Bezyaeva said that “здесь” is either about place (here) or time (then, now). It is neutral and has no communicative connotations. The word “тут” is not so simple. “Тут” refers to the situation on the whole (both time and place), marks that a speakers knows the circumstances well, and also may express the speaker's opinion about the situation. Russians tend to use the word “тут” when they consider the situation relevant to their own interests, feel that the situation is under their control or is going out of their control and think that the described circumstances are good or bad for them or for other participants of the communication. Eureka!
Communicative level is like another dimension of the language. What couldn't be explained with the nominative meaning, can be easily clarified in the light of communication tasks. Of course, native speakers always feel communicative meanings of the words and phrases, but rarely focus on it, taking it for granted. Many “meaningless” things like interjections (“же”, “-ка”, “-то”) and exclamations (“ой”, “ох”), indirect word order and so on – all this expresses what in IT-language may be called “overhead information”, the information about what we think of the situation, our interlocutors, ourselves and much more. Is it possible to learn the language so well that start “hearing” these meanings? I'm sure, yes, it is. The best way to master on it is to deal with the real language — watching movies, listening to the Russian radio stations, reading books and talking to native speakers.