I would like to know how a transliteration of a foreign name becomes "the accepted version", and why the accepted version is sometimes replaced. I would also like to know why some transliterations into English make absolutely no sense to English readers: i.e. what is the main purpose of transliteration into English? It cannot be to help English speakers give an approximate pronunciation, because sometimes the transliterated form uses letter combinations not found in English, that make no "sense" in English orthography.
In many instances the original languages were considered too difficult by the colonists or conquerors to properly repeat, so names were regularly transliterated by the occupiers to make it easier for them to pronounce and remember. And in some cases, the original name was altered in a show of dominance by a conqueror; natives were forced to use the new name as a way to demonstrate obedience.
Political independence and pervasive communications channels have given new voices to native speakers and historic preservationists. In most countries, the collapse of colonialism returned to the natives the authority to restore ancient names, or at least improve upon the anglicized versions. (I presume similar movements are happening to French, Dutch, and Portuguese names in their former colonies, as well.)
I found this was a surprisingly difficult question for an American visitor in India to get a straight answer. Directly asking someone if they preferred Bengalaru or Bangalore is rude: it puts the native in the position of giving an equivocal answer so as not to offend their guests. The only people who seemed to answer these kinds of questions directly were talking heads on the TV, all of whom had a political agenda.
Transliteration in the Latin alphabet can be done for various purposes, and what “makes sense” in one context might seem to make less sense in another. Generally, the purpose of making the pronuciation clear to English speakers is not a very important one.
In some cases, a transliteration is needed for technical reasons. Some computer systems can’t deal with the original orthography of names, so a transliteration of a name is useful for things like documents and online forms that must be filled out with the Latin alphabet; for these purposes, it only has to be written (i.e. pronunciation isn't necessary).
Another purpose of a romanization may be to represent the pronunciation in the original language. (This is generally referred to as “transcription” rather than “transliteration”.) Not all languages have the same sounds. It would be impossible to indicate the proper pronunciation of some sounds using only the traditional patterns of English orthography, so transcriptions of names often follow more general patterns of romanization that aren't based just on English spelling, but use whatever is the most convenient way to represent the original. (The X and Sh sounds of Pinyin, for example, are distinct to speakers of Mandarin Chinese, but both sound like a "sh" sound to English speakers. Spelling these according to English perceptions would collapse this distinction.)
Romanizations may change over time, as has happened for Chinese and Korean, and this may lead to the replacement of a former transliteration of a name (e.g. former Mao Tse-tung is now Mao Zedong).
So why do English-language writers use these established romanizations of languages, with their un-English orthographic conventions, rather than a system specifically designed for indicating English pronunciation of these terms or names? This is a hard question to answer, but in general, English doesn't have much of a tradition of respelling words that already have a representation in the Latin alphabet just to indicate pronunciation. For example, words like "resumé" or "ski" have their spelling unchanged from their source languages, because their spelling did not originate as a pronunciation guide. Pronunciation is not a very important consideration for how most things are spelled in English!
Another consideration is that there is often no one established “correct” pronunciation for foreign names in English. Usually for famous or well-known people, some kind of conventional pronunciation is established over time, but what that pronunciation will be is not always predictable. Some people try to pronunce names as close to the original language as they can. This means that it would be difficult to figure out how to spell these names if it was based on how English speakers pronounce them.