In class, students are taught that a synonym is any word that means the same as another word. The problem is that it usually does not exist. A synonym is "a word or phrase that has the same or nearly the same meaning as another word or phrase in the same language" (Cambridge Advanced Learners Dictionary: Other dictionaries have similar definitions). I would like to suggest a flaw in that definition. Perfect synonyms that mean exactly the same thing do not normally exist. The synonyms big and large appear at first to be identical. However big also has its original meaning: important. The word large only refers to size or number. There is usually some sort of subtle difference between two words "with the same meaning".
English often uses words from other languages, particularly French and Latin, to show higher status. Superficially the words shop and emporium have exactly the same meaning. They are both a place to buy things and so are synonyms. Why would someone want to use the Latin word emporium (meaning: shop) when English already has the word shop? The word shop comes from the Old English word scoppa. The Latin word is used to inform people that the place is high class. So the difference is that an emporium will sell the same goods at a much higher price and the word is more difficult to spell. There are many such synonym pairs in English: obfuscate and hide, and fry, homogenise and mix, and coffee house, assassinate and murder, lady and woman.... In all of these examples the first word is higher status and has a slightly different meaning.
What happens when two words are perfect synonyms? Then one of them would be redundant. If a subtle meaning-change happens in one of the two words then it makes sense to have both of them instead of one. Two perfect synonyms can exist, but often only temporarily. Either one vanishes or there is a meaning-change to differentiate the two words. An example of this situation is the words leg and shank. The word leg is from the Old Norse leggr. The word shank is from the Old English sceanca. Today the word shank is only used in some local UK dialects. These two words were synonyms; no significant difference evolved between them. So one had to go and history has dumped the original English word.