I'm thinking more along the lines of Deutschland vs. Germany, Bharat vs. India, rather than the anglicization of names that conform to English pronunciation.
To start, this is hardly just an "in English" question. Many nations are referred to by alternative names in other countries, with a few in particular having especially many names. Greece, Germany, and China have many different names, from many different sources, acquired over many many years.
For an example, we will use Germany, as you've mentioned. The native name of the country, Deutschland, is derived from Proto-Germanic, what my [Etymological Dictionary of Proto-Germanic] (https://brill.com/view/title/12611) reconstructs as "þiudiskaz+landą" meaning "land/country of the people." However, a unified Germany is a rather recent affair, and so Deutschland wasn't really in use in German international relations - the Prussians would call themselves Prussians, and the Austrians would call themselves Austrians and so on and so forth. Most foreigners had no need to remember the Germans' name for themselves, as their relations were never with Germany as a whole. Instead, many peoples used their own names, of various origin. For the French and Spanish (among others) this took the form of "Allemania" (Allemagne/Alemania). This name is derived from a Germanic tribe known as the Alamans, which is purported by my previous source to mean something along the lines of "All Men's Tribe" or "Everybody's Tribe." This same Etymology is supported by [Edward Gibbon] (https://www.ccel.org/g/gibbon/decline/volume1/chap10.htm#MIX) in his tenth chapter. The Alamans lived in what is now the lower Rhineland, and constant contact with the French likely caused the name of the region to become the name of the whole country. For English, Italian, Greek and Russians (among others) the name "Germania" is used (Germany). This name actually comes from [Caesar] (http://www.gutenberg.org/cache/epub/10657/pg10657-images.html) and he tells us that they were a people living on the Rhine river. The Romans, notoriously contemptuous of "barbarians" applied the name "Germania" to the whole land over the Rhine, which is the bulk of modern day Germany. As far as I know, there is no clear etymology for this word. But as it was the Roman name for the region, many peoples continued to use it, well into the present. Perhaps the most interesting name for the Germans comes from the Slavs - němьcь. In Polish this yields "Niemcy" and it also provides the Russian word for the German language "немецкий." My [Etymological Dictionary of the Slavic Languages - Proto-Slavic Lexical Stock] (http://etymolog.ruslang.ru/index.php?act=essja) holds that this word originally meant "the mutes," and referred either to the stoic silence of the Germans or referenced their "inability" to speak intelligibly (akin to the term "barbarian" in Greek). It was probably a slur to be honest, but over time it just became an exonym. There are others too - the Finns call the Germans Saxons, as do the Estonians (Saksa/Saksamaa). The Latvians and Lithuanians have a name too, but I can't remember if. So, there are lots of names for Germany. Many are very old, some were initially individual tribes (Saxons or Alamans) that later gave their name to a whole region, some were regional names that stuck around (Germania) and others were slurs that became standardized exonyms (Niemcy). There really is no reason we don't call Germany "Deutschland" or some variant. It just didn't become popular as a name. One thing is consistent - once a name became popular, it didn't really go away.
But that's just Germany - India is a different story, as I'd China, as is Greece. Each example of odd exonyms is unique, and needs individual examination. But I want to stress that this isn't a "English" question. The Persians call the Greeks "Ionians," and the Irish call the English "Saxons."
Point being - names often come from lots of different roots. Different peoples will give a name to a foreign group, and keep it for thousands of years. This isn't really an English specific issue either, the Chinese call America "Měiguó" for instance. There really isn't some rhyme or reason why we don't call certain countries by their own names, and there isn't really a reason why we do phonetically transcribe others. Usually peoples don't like assigning new names to existing areas, but even that's hardly a hard and true rule. Honestly, it's just a case-by-case question, that can't really be some overarching rule.