Quero entender seu ponto, porque você fala que o indice ser diferente de comprimento induz a logica antinatural?
Tipo, o que eu não consigo entender é o porque de você ver comprimento e indexação como coisas iguais, uma coisa é posição, outra é quantidade.
O que, pelo meu ponto de vista, parece antinatural é tentar percorrer os índices de uma string pela sua quantidade e não pela sua posição.
Você pode fazer um paralelo com as horas. A 1ª hora do dia é a hora 0.
A quantidade de horas de fato não pode ser 0 porque se tivermos 0 horas não temos horas. Entretanto, a primeira hora pode ser 0, porque temos a hora 0 com minuto 1, por exemplo, que não é a hora 1 só por ser a primeira hora, do contrário seria 1h e 1min.