Not true, the word idiot is meant to describe someone that acts in an idiotic way. We may abuse that word and call somebody an idiot just cause we feel like attacking that person, yes. But the word's true meaning is not an insult, it's meant to describe a kind of behavior.
I don't think there are any words created specifically to insult someone. Such words have a meaning describing a specific behavior or state. It's actually their misuse that becomes an insult. Also determining that a word is used as an insult is contextual too. You can call someone an idiot in a friendly way or you can do it to hurt that person, context is key to intention here.
I'll give idiot just because its origin was from a medical term, even though that term is no longer used in that way. Although the origin of a word has little bearing on how a word is used currently.
If you don't think there are words created for the sole purpose of being insults, than you have a wealth of language you have yet to discover. I suggest visiting Ireland, Scotland or Australia you will find so many bizzare and creative words created for just insulting people.
Context is important in whether someone tajes offense to an insult but has zero bearing on weather a word is an insult.