Доменные имена – важнейшая часть интернета – и, пожалуй, вторая после IP-адресов. Кажется, что DNS и сами доменные зоны остаются неизменными десятилетиями, однако на самом деле изменения есть и они накапливаются. И можно в один прекрасный момент оказаться лицом к лицу с технологией, которая стала настолько другой, что ваш продукт больше не работает…
Вы очень сильно упростили схему валидации/нормализации таких доменов. Она гораздо сложнее. Весь StackOverflow завален вопросами про корректные алгоритмы валидации IDN, при этом там нет ни одного исчёрпывающего ответа. Ни одного.
Например, для валидации IDN в PHP-проектах можно использовать валидатор laminas: https://github.com/laminas/laminas-validator/blob/master/src/Hostname.php – это кусок бывшего Zend-фреймворка. Одна из лучших реализаций в OpenSource сейчас.
Но даже в ней куча багов, этот валидатор приходится обвешивать дополнительными проверками. Например, я отправил в этом году им баг с капсом в кириллических доменах: https://github.com/laminas/laminas-validator/pull/64
И именно вся эта сложность и становится преградой для повсеместного внедрения IDN-доменов. Их поддержка на техническом уровне – это очень затратная история.