Insgesamt finde ich nullbasierte Indices sinnvoll, da es viele Berechnungen erleichtert.
Seien es nun Adressberechnungen (Offset + Index*Stride) oder Transformationen in Vektorräumen.
Wenn man unbedingt eine Eselsbrücke braucht: Man kann sich die Indices als zwischen den Elementen liegend vorstellen.
Code:
Index--- 0>1>2>3>4>5
Speicher |H|a|l|l|o|
Bezüglich der Grafik @stahli: Wenn dich das so stört, dann schreib dir halt eine Funktion, die zwischen deinem favorisierten Koordinatensystem und dem Nativen übersetzt.