As someone who has been mispronouncing “Colonel” until recently, this article on the word’s etymology is comforting. The word was originally spelled as “coronel.” Had that spelling been retained then the modern pronunciation would have made so much sense. Instead, at some point in the seventeenth century the word took a sinister turn: the “r” was replaced by “l.” And as is often the case with English language, the pronunciation failed to keep up with the spelling. Alas!