OK, so even with just one axis hooked up you are seeing the creep. I make the creep 0.0001" per cycle, right? Just possibly that is the resolution of your axis?
I am now 99% convinced that this is a bug in how Mach handles multi-axis moves, at least with the Gecko drives. Changing the Dir signal is causing a change in the state of the Step signal which is effectively injecting a single step. The consistency of your results precludes random noise imho.
Checks to run:
1) Verify that this produces the same amount of creep despite having moves of 0.25", 0.5" 0.75"...
2) Verify that N cycles produces a creep of N*0.0001", where N=50, 100, 150, 200 ...
3) Check to see what the single step resolution of your machine is.
If both of these produce positive results, then you have a good case for going to ArtSoft with the data and requesting a check of the code.
A further rather cunning test is as follows, and it assumes that your resolution is 0.0001". Repeat the 50 cycle test for 1.0000", 1.0001", 1.0002" ... See if there is any variation in the creep as you move through the single-step increments. What you will be trying to do here is to alter the state of the Step signal when Dir is flipped. This may or may not produce interesting results - hard to say at this stage.
Making your wiring really clean is worth doing of course, but it seems you really have two separate issues here.
cheers