Don't know if there could be other peep.in rules that take precedence or vary randomly. I know that one of the other bugs that I fixed (tNStr) didn't show up every compile.
The fix I did for F_NEG_NUMBER begs the question whether 0x80000000 is a valid argument for negation. I would assume not and that would point to an missing overflow check in peep.in similar to some of the other NUMBER rules. That doesn't explain your working case but I guess you need to trace the opcodes to be sure whether it's the same situation I ran into.