I did some more testing to narrow down exactly when this occurs. It seems like it only occurs when you are trying to roll over 0 from > 180 degrees when rolling over away from zero.
Start with your rotary axis at machine position 0, enable the machine. Then issue the following commands:
G0 C0
G0 C180
G0 C270
G0 C0
What will happen is the axis will first goto zero, then increment through 180 to 270, but then when told to go to zero, the axis reverses direction and goes back to zero rather than continuing to travel past 270. This happens in the "negative" direction as well (if you are in negative machine coordinates, away from zero).
I did find a way around this, and that's by setting an offset immediately before commanding the axis to move back to zero. The offset needs to be whatever multiple of 360 is larger than the current machine coordinates (or smaller than if you are in negative machine coordinates, moving away from zero). So if machine coordinates for this axis are moving between 0-360, work offset must be set to 360 then you can command back to zero. If machine coordinates are between 360 and 720, work offset must be 720.
It's an annoying workaround, but it does work. It just demands you know at all times where you are in absolute rotary positioning in your G code, which kind of negates the point of rollover.