Niedrige Offsets ändern sich grundsätzlich wesentlich seltener als hohe Offsets. Wenn man versteht, wie Pointer funktionieren, kann man sich das auch recht einfach erklären.
Das Offset gibt an, wie viel Platz zwischen der aus der Base ausgelesenen Adresse (also dem Wert, der in der Base-Adresse steht) und der gesuchten Adresse ist.
Wenn sich ein Offset bei einem Update ändert, dann (abgesehen von grundlegenden Strukturänderungen im Code) ist der besagte Platz größer oder kleiner geworden, es wurde also etwas darin entfernt oder hinzugefügt.
Wenn dieser Platz beispielsweise 1kb groß ist (kleineres Offset), ist es natürlich unwahrscheinlicher, dass gerade dort sich etwas ändert, als wenn der Platz 100kb groß ist (größeres Offset).
Um es einfach zu machen, kann man sich den Programmcode vielleicht als Buch vorstellen. Das hat z.B. 100 Seiten, die Base-Adresse zeigt auf die Seite 30 und von dort hast du ein Offset, das 5 Zeilen weiter führt oder eines, das 100 Zeilen weiter führt.
Wenn jetzt jemand den Text im Buch ändert, erwischt er natürlich wahrscheinlicher den Bereich der 100 Zeilen, sodass das neue Offset vielleicht 103 Zeilen wäre, weil ein Satz dazwischen eingefügt wurde, der 3 Zeilen füllt.