To me, it sometimes even feels unnatural or even snobbish to pronounce it "correctly" disregarding the phonetics of the language.
Exactly. That is why in Serbian/Croatian/Bosnian foreign names are transcribed, which means pronounce it as close as it is possible but sound that do not exist in S/C/B, are replaced with the most similar ones. You gave an excellent example. Köln - This "ö" is something between o and e, meaning you put your mouth as if you would say O but you pronounce E. The result is some kind os semisound, something between O and E. Now, since this sound does not exist in S/C/B the closest variant is vocal E. Therefore we say KELN.
Or Barcelona. C as fricative Spanish sound does not exist in S/C/B. Therefore, the closest sound is S, and we pronounce it BARSELONA (BTW, this is how it is pronounced in all American countries). But I also think that this city has different pronunciation in Croatian and Bosnian, who decided to read exactly as it is written - in S/C/B the letter C is pronounced as German TZ, so Croats and Bosnians pronounce this city's name as BARTZELONA.
Everyone who tries to pronounce foreign names in an exact way as it is in foreign language is considered posh and snobbish, as Beclija already mentioned.