Well the second operand is supposed to be an element in an array - not an arbitrary memory offset, so presumably it was always intended to be positive too. Clearly things have not turned out that way. Negative addresses make about as much sense as negative element indexes. Often, z-machine specifics are not straightforward due to the “Specification by implementation” way they were first created, followed by the whole reverse engineering thing and followed by later extensions.
Edit: Not to mention people hitting edge cases that Infocom never did in their games.