There are "rules" for English pronunciation, but they are merely guidelines. English has absorbed so many words from so man origins over the years. Children learn the language much as you describe. They are taught that certain letters make certain sounds, but they also have to learn individual words which are "exceptions."
There are often more exceptions to the rules than those that follow the rules. Place names are a particular example of this.
Who would imagine that "Worcestershire" is pronounced the way it is?
Natives are not immune to this, either. We often mangle names of people and places if we don't know how they "should" be said.