The same is true of every aspect of the game. Simulating an AI capable of acting like a real human person is beyond the capacity of current programmers, but nevertheless paradox has probably hundreds of thousands of characters in CK2, ostensibly acting as "people". The difference here is a question of "perfect" vs. "good enough", and the fact they you say "this can't be done" and my response is "here's a way to do it I came up with in twenty minutes" is clearly indicative of a similar problem; you're saying we can't do a perfect system which works 100% of the time? I agree. But I'm saying we can make do with something which is roughly good enough, especially if it run off a mod-able scripting system.
Because honestly I think if we applied the same standard to AI, War, Plots, Religion, Province development -basically anything- we'd have to give up and scrap the feature, but if we say "how can we do this simply?" then we get lots of options which aren't fantastic but kind of work, mostly. From there it's just a case of working out what we actually need to work well and what we can afford to leave up to abstraction, smoke and mirrors and the other myriad of tricks game makers use to make a handful of random numbers and deterministic algorithms look and feel like a real-ish world.
I'm saying that the method you suggested would be deeply inadequate, and thus not even remotely good enough.
The transliterations would be terrible, and often wrong, and badly so. Even trying to do this between closely related languages is going to result in utter rubbish a significant portion of the time.
Take for example the name of an English town. Loughborough. (broadly "Luff-buh-ruh")
If you take a simple machine transliteration, it *will* get the name wrong, and fail to render a name that will sound even remotely similar, due to the fact the "ough" parts of the name make two different sounds.
Then there's Slough. (rhymes with "cow"). Same ough combination, another sound entirely.
Woughton (Wuf-tun), Loughton (Lau (again, rhymes with cow )- ton), and Broughton (Braw-ton) all lie near each other, being parishes in the same town, and all have different uses of "ough".
To make a program that is capable of spotting those different sounds *and* getting it right is difficult, even as a professional piece of work.
The same applies to other combinations.
"Celt" has to pronunciations. "Kelt" is a member of the pre-saxon population of Britain. "Selt" is a stone knife.
"Celtic" can either be "Keltic" - appertaining to "Kelts", or "Seltic" - a football team.
For a simple transliteration program spotting when C is meant to be hard (K) or soft (C) is not easy.
"Ch" can be soft (church, Chester), or hard (school, choir), or almost a "j" sound (Greenwich, Norwich)
Functionally your 20 minute solution is another example of a solution to a problem that is "simple, neat, and wrong".
I'm not saying it isn't a good attempt at the problem, just that it is one that cannot work as simply as you appear to think it can.
You'd have to fill it with so many exceptions and special cases that you'd be essentially hand crafting the melting pots instead of making them happen dynamically.
*Or* everything would have to programmed in IPA behind the scenes and rendered into appropriate text, whilst not necessarily having the historical registers for a given culture or dialect, and with compromise registers being able to be created on the fly for where a given sound just doesn't exist in a language but they need to absorb it as part of the melting pot *and* assign it an orthography.