Without the PR I linked, the compiler saves positive zero and negative zero as two different internal values. Mostly these two values act the same way, but when using a switch prong which is not a range, the compiler uses this compare function, if the switch condition is comptime known. This function checks if the compiler internal values are the same.
Because both values represent 0, they act in the same way when you print them.
When using a range (and the condition is comptime known), the compiler uses the bigint order function to check if the switch condition is in the range. This already handles the -0 case.
If they are also caused by the compiler handling +0 and -0 differently, then probably yes. If you want to be sure for some example, compile the branch of the PR and try it out (or send it here and I can try it out, if you don’t want to compiler the compiler).
I tried out your code above, but with @mod replaced with @rem. This has the same bug on master as your @mod example and it also get’s fixed by the PR.