There are two issues here we should disentagle:
- preventing scripts from decrementing a counter, if doing so would cause it to wrap around to a positive value;
- supporting negative values for counters that are currently unsigned.

Both issues have some merit, but the former is much easier and self-contained than the latter (check in the appropriate ZASM interpreter code before applying a change, vs. go through all places where the game engine uses a counter and make sure nothing breaks badly when the counter is negative.)

Are any old scripts relying on the counter-wrapping behavior? It seems unlikely, but I might as well ask.