Linguists call this “semantic drift” and it occurs in every language we know of. https://en.wikipedia.org/wiki/Semantic_change
Wikipedias first English example is:
Awful – Literally "full of awe", originally meant "inspiring wonder (or fear)", hence "impressive". In contemporary usage, the word means "extremely bad".