delayMicroseconds(0) = 16383µs

You could use a macro and be done with it.
You don't even have to change the name.
i.e.

#define delayMicroseconds(us) do { if(us) delayMicroseconds(us);} while(0)

This will work fine. It does add a slight overhead of a runtime check if us is a variable and not a constant
but then any solution that does a run time check on the delay value will have this.

The real question is if you want a delay of 1us when the delay you are asking for is 0?

And my question of curiosity is why are you asking for a delay of zero?
Is this caused by some sort calculation that results in truncation?

--- bill