delayMicroseconds(0) = 16383µs

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.