Ну, а теперь представь миллиард строк по миллиарду символов, где для каждой строки нужно не только место под размер занимать, но и выполнять операции по вычислению размера.
А теперь представь строку на миллиард символов. Для такой строки затраты на хранение её длины остаются теми же - один байт в котором записан нуль-символ.
А вот если бы длина строки хранилась в переменной, то нужно было бы следить за размером этой переменной, потому что на слишком длинных строках числовое значение длины не помещалось бы в переменную.
Ты думаешь, почему Дельфи такой медленный язык (программа The Bat! работает медленно), потому что там этого нет, из-за чего происходит множество лишних вычислений.
То что тормозят и требуют специального Runtime программы на C# не напрягает?
Кому сейчас нужна такая оптимизация по объему и скорости?
Сейчас, напротив, в языки встраиваются дополнительные проверки, чтобы программистовские ошибки ловить.