В методе expirePoints() класса Df_Reward_Model_Resource_Reward_History формируется такой запрос:
SELECT `df_reward_history`.* FROM `df_reward_history` WHERE (website_id='1') AND (`expired_at_static` < '2013-09-09 19:50:04') AND (`expired_at_static` IS NOT null) AND (is_expired=0) AND (`points_delta`-`points_used`>0) LIMIT 100
Т.к. expired_at_static никогда не НУЛЛ, а наоборот всегда '0000-00-00 00:00:00' (по дефолту), то именно при "срок годности не ограничен" случается автосписывание начисленных баллов ибо данный запрос возвращает ВСЕ еще неистекшие записи таблицы.
Это проявляется не всегда, не на всех серверах, возможно причиной есть настройки крона в этом же модуле (и крона сервера естественно).
Если поля дат установить в дефолт == НУЛЛ, то автосписывание прекращается, но тогда, возможно начнут появляться ошибки описанные автором.
Тестировалось на сборке 2.20.5
Извиняюсь если не в тему.