Technically no two words are identical, especially between speakers, but the term is still useful. Here's my answer borrowing from a few disciplines:
Semantics:
It may be useful to think of words in terms of their sense and reference. You can think of reference as the thing that the word/phrase 'points to' in the world, and sense as additional meaning conveyed by a word/phrase. If for example, you were to refer to your friend's dog as "Lassie", the reference of Lassie in this context is simply your friend's dog. If you referred to your friend's dog as a "mutt", then the reference of "mutt" is still your friend's dog. Both "Lassie" and "mutt" share elements of the same meaning--in that they have the same reference, but they differ in their sense. You could make the same argument for "wash" and "clean", though they may have the same reference they have different senses, therefore, they are not the exact same.
Cognitive Science:
How do we define words and phrases? It cannot be just a dictionary definition, because we know much more about what constitutes a word than what a dictionary attempts to do. One could extend the idea of a dictionary definition and compose a set of necessary and sufficient conditions that encapsulate a word's meaning (for example a dog could be something that is furry, four-legged...etc.) But this is problematic--for one it does not account for gradation across categories. Secondly, it is almost impossible to fully define categories such as "dog" and "chair" using necessary and sufficient conditions. (You could fill a book with conditions that could satisfy "chair" but can never work out a contingent system), finally, it leads to infinite regress. (For example, if we define a "dog" as something that is "furry", what then is are the necessary and sufficient conditions of "furry"?)--thus necessary and sufficient conditions don't have much use in natural language. An alternative is prototype theory (see: Eleanor Rosch), which asserts that a concept's meaning is graded around an idealized core. For example, you may have an idealized concept of "dog" (say, a golden retriever), and all other examples of dogs you see in the world lay on a spectrum in relation to your idealized representation of a dog. The farther away, or more different, the object is from the idealized core, the less "dog-like" it is. The interesting thing about prototype theory is that the idealized core is arbitrary--it varies from person to person. So one person's idea of a "dog" is not the same as another person. That means that the word does not mean the exact same from speaker to speaker, despite having very similar senses and references. From this we could conclude that no two speaker's englishes are the same. So even when comparing the same word, their meanings are not truly the same. The processes that involve how prototypes form in the first place are as much dependent on individual variation, as they are culture and language.
Phonology:
The Bouba-Kiki effect shows that speech sounds themselves may come to have meaning (see: sound symbolism). So the fact that your synonyms "wash" /waʃ/ and "clean" /klin/ have different phonological realizations means that they also have differing semantic implications.
Bringing it together:
As an ESL teacher you may be working with children who may have learned english explicitly--this is in stark contrast to native english speakers who learned english passively. ESL speakers may be comparing their native language (and prototypes) to english, thereby producing different conceptualizations of the semantic space english expressions explore.
So cognitively no two words are identical. From this you could claim that there are no "true" synonyms--but that doesn't mean that the term "synonym" is useless. Even though all words have multiple complex layers of meaning, some words have more semantic similarities than others, and that still bears pointing out as an interesting feature in language.