Aber auch in diesen Beispielen sieht man sehr schön, dass nur komplett gelesen und wieder geschrieben wird.

Um Daten gezielt zu ändern muss man positionieren (ich glaube mit seek()) und dann schreiben.
Allerdings kann man nur bestehende Daten überschreiben, nichts löschen oder einfügen, nur eben anhängen.

Du kannstdas ganze auch so sehen, als ob du eine große Programmvariable hast (e.g. D MyVar 10000) in der du auch Inhalte löschen oder Einfügen willst.

Hierfür gibts sogar das neue Builtin %replace(), der auch zusammenschieben und einfügen kann.
Aber, wie gesagt, im Speicher nicht im IFS-Objekt.