I've spent entirely too much time reading the v4 docs, but here's how I interpret it (and take with a grain of salt as I don't run v4):
Your $Conf{FullKeepCnt} = 1, which means to keep 1 filled backup. (Not necessarily 1 Full backup)
After a successful backup (full or incr), the most recent is your 1 filled backup, and so it removes the oldest filled which happens to be your previous Full. Then it'll try to take a new Full on the next run.
You might have stumbled upon an edge case where FullKeepCnt < FullKeepCntMin. And I also wonder about the integrity of the incr backups where the filled source of reverse deltas has been removed (i.e. #1, based upon #2, but then #2 was removed after successful completion of #3).
But yeah, experiment with FullKeepCnt? If you want to take 1 full every 30 days, then FullKeepCnt = 2 ... I would think.
At the very least, thanks for bringing some more v4 attention to the list.
-Kris