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