I think items might actually be 0 too, might be something else that determines if an item is on screen or not. (special item has this so it would make sense)
I can't think of anything else with a none identifier other then that where something else is 0.

It just doesn't make sense to me that anyone would program a NULL value as -1. Because that would return true.