I can never bring myself to call someone an 'idiot' even though it;s the most insulting of the lot — because other people don't realise it's the most insulting of the lot, it loses its power ... so, I end up having to use 'moron', 'imbecile', 'cretin', or whatever ... with or without expletive adjuncts (but usually with) in order to express my scorn of them inaccurately (oh, the irony *sigh*)
Re the 'fool', however ... it's extremely pejorative when used by someone from Jamaica, or of Jamaican descent; if you get called a fool by someone in Brixton (London), for instance, it's probably a good idea to leave the area quickly — they have taken a serious dislike to you and what happens next depends upon how prone to violence they and their family/friends/crew are.