REGEN оптимизирован чтобы перерисовывать только те примитивы, которые отмечены как измененные.
RecordGraphicsModified(true) как-раз помечает, что entity изменен и его нужно перерисовать.
По идее после каждого изменения свойства, влияющего на отображение, например цвета, примитив должен помечаться как измененный.
Но это происходит не всегда, возможно недоделки API, или подразумевается особая логика.
Скорее всего DrawableOverrule не помечает примитив как измененный.