it suffered from the same problem: it performs a subtraction before it performs a test. So a '0' is essentially passed to the call as -1, which is 64k-1, as the argument is cast to unsigned int.
Your choice is to change the code, or recast it to your own version:
#define mydelayMicroseconds(us) do {if (us) delayMicroseconds(us);} while (0)
And change all calls to delayMicroseconds to mydelayMicroseconds.
Or don't call delayMicroseconds with 0.