Сейчас строковые литералы порождают толстые указатели Хотя можно было бы информацию о размере закодировать в типе вместо этого, как это сделано с байтовыми литералами
Хорошо, со вторым не поспоришь, было бы прекрасно, но что есть, то неплохо. Для первого - хранить байтовый массив и на него по необходимости делать str::from_utf8.
Алсо, есть довольно много всяких крейтов, которые предоставляют кастомные слайсы байт (bytes, secstr), и они тоже могли бы почти-бесплатно получить UTF-8 версию.
Типа работу со строками фикс размера унифицировать можно только толстыми указателями, если не указывать размер в качестве параметра (конст дженерики на 1.51).