Because they're different in "some foreign language". Do you mean, they're different in their own language? I imagine you'd cheerfully correct a Japanese tourist referring to 'Rundin' - "Oh no mate, that's how foreigners say it. This is London. Get it freaking right."
The attitude that everything in the world should bow to having an English name - because you know, all those foreign places, why should they be allowed to have foreign names - is just stupid.
Bigotry like this makes me sick.
Do you even comprehend that Yangon etc is the original name of the place in question? They're not saying 'No, Rangoon is not proper English.' they're saying 'No, Rangoon is not what this place is called, you poncy English moron.'
No, I would not expect the Japanese to start calling London, 'London', especially knowing that the English 'L' sound doesn't really make much sense in Japanese. I suspect 'Rundin' makes more sense in the Japanese language and flows more naturally; if I were speaking Japanese (assuming I could, for the sake of argument) that would be the term I'd use. You use the English term when speaking English, you use the Japanese term when speaking Japanese, it's really as simple as that. Now if a Japanese person is speaking English, they should probably try to use the English term, just like if a native English-speaking person is speaking Japanese, they should probably try to use the Japanese term. Use the term appropriate to the language you are speaking, not the term appropriate to the language of the place itself; there's nothing bigoted about it.
I never suggested the English term should be the universal term, merely that it should be the term used when speaking English. If you're speaking French and call 'Angleterre' 'England', that would be equally wrong; it would just be silly to use the term 'England' when speaking French...even if that's what they call it in England itself where they speak English. Yes, Yangon is the name of the city in Burmese and the term you should use when speaking Burmese, but when you're speaking English it's Rangoon. Just like England is the original name of the country and the term you should probably try to use when speaking English, but when you're speaking French you should probably be calling it 'Angleterre' instead. Likewise, Germany is Germany in English, but if you're speaking German it's 'Deutschland', there's nothing nefarious going on there, there's nothing inherently wrong with the term 'Deutschland', it's just not the term we use in English. I'm must confess, I'm a bit confused as to why this makes you sick? By definition, different languages have different names for places, objects, actions, etc; if all the names were the same, they wouldn't be different languages, would they?
Oh, and it's always rude to correct someone's pronunciation no matter how atrocious (the more atrocious the pronunciation, the ruder it is to correct it), so even if a Japanese gentleman were speaking English, but using the term 'Rundin' for 'London', no, I certainly would not correct him.