Такое написание сложилось исторически. В древнерусском языке буквы ж и ш обозначали не твердые непарные звуки, а мягкие. Закономерно после них писали и. Звуки отвердели, а написание не изменилось. Правила только фиксируют сложившиеся в языке нормы.
Думаем, такое развитие значения слова вполне закономерно.
1. Название города Брно в русском языке не склоняется, несмотря на склоняемость этого топонима в языке-источнике. Склоняются только незаимствованные из иностранных языков названия, оканчивающиеся на -о: Бородино, Строгино, Останкино и т. д.
2. В русском языке есть слова без гласных: это однобуквенные предлоги к, в. Поэтому существование заимствованного слова Крк не представляется таким уж страшным явлением. Более того, многие заимствованные собственные наименования имеют право вести себя "не по правилам": некоторые из них могут, например, начинаться с буквы Ы (Ыджыдпарма, Ыгыатта и др.); некоторые содержат нехарактерное для русского языка сочетание букв ШЫ или ЖЫ: Шымкент, Ени ишык, Кажым и др.
Что же касается названия Тырново, то в нем наличие гласной вполне закономерно: в болгарском языке буква Ъ обозначает редуцированный (краткий) гласный, которого нет в русском. Этот гласный передается наиболее близкой по "звучанию" буквой – буквой Ы. Заметим, что в русском языке буква Ъ не может использоваться для обозначения гласного звука.