Just to re-center the discussion, why is the axis position reporting zero after a power-up. Assuming the motor has an absolute encoder and neither an MRP or MAH is issued, the axis position should report the current position returned from the absolute encoder. Assuming the axis hasn't been moved, this should be the position the axis was in when it was powered down. Even if tha axis was moved it should still be the correct position based on the last hardware reference. At the very least the position should be SOMETHING, even if it isn't correct. Zero seems like an add position.
I don't have any answers. However, you shouldn't need to reference every time you power up. This should only be done as a maintenance/set-up type of thing.
Keith