As Mohamed Essam has commented, linguists are reluctant to accept that there are ever absolute synonyms, precisely because that kind of redundancy isn’t really logical. Usually, there will be some slight nuance of difference between them; if not in their etymology, then in their social register, or their connotations, or even just their sounds.
As to why one word might develop two meanings: meaning itself is not a static thing, and words can be reinterpreted to have simultaneous ambiguous meanings, which can in time diverge. This could be because of the pursuit of vivid language, as in metaphor, or it could be a “metonymic” change, relying on the ambiguous possible interpretations of a word in a given context. Language hearers construct the meaning of words from their context, and that construction is not logical induction or deduction: it is abduction, reconstructing a theory (the meaning) based on observations.
And abductive reasoning is logically fallible. If it were not, word meanings would never change.