points + 1 ist 1 Byte weiter, nicht 1 Index weiter. Das war aber schon immer so.
Nö, genau dafür ist ja {$POINTERMATH ON}
Dass die Array Syntax auf dem Pointer nicht funktioniert, sieht nach nem Compiler Glitch aus, da der Fehler darauf hinweist, dass er den Indexzugriff auf den Typen hinter dem Pointer durchführt:
E2010 Incompatible types: 'TiPoint' and 'Integer'