über speicher hinaus schreiben kannst du in dem du über Arraygrenzen hinaus schreibst, eine Objectinstanz zu einem falschen Typ castest und Properties/Membervariablen schreibst etc.
Und ob du etwas an Quelltext hinzfügst oder wegnimmst dürfte von der Wahrscheinlichkeit her gleich hoch sein in Bezug auf Fehler verursachen weil dadurch im Speicher einiges verschoben wird (und an anderen Stellen liegt) und dir dadurch als Folge dann deine Fehler von wo anders auffallen.
du könntest mal mit Debug-
DCU's kompilieren und schauen an welcher Stelle es knallt (und entsprechenden den Callstack anschauen um das ganze nach zuvollziehen)