That makes a bit of sense. Homing with enabled distortion correction does not work. Looking into 1.0.4dev code for homing in Printer.cpp line 2019 you see
void Printer::homeAxis(bool xaxis, bool yaxis, bool zaxis) { // home non-delta printer
unparkSafety();
bool nocheck = isNoDestinationCheck();
setNoDestinationCheck(true);
#if defined(SUPPORT_LASER) && SUPPORT_LASER
bool oldLaser = LaserDriver::laserOn;
LaserDriver::laserOn = false;
#endif
float startX, startY, startZ;
realPosition(startX, startY, startZ);
#if DISTORTION_CORRECTION
bool distOn = Printer::distortion.isEnabled();
Printer::distortion.disable(false);
#endif
As you see distortion correction is disabled first before anything is done. Printer::distortion.disable(false); is same as M323 S0 does. Can you update to 1.0.4dev to be sure fixed bugs are not a reason. I also see in code that you should see in log a message that distortion was disabled when you home. Do you see that?
Are you using fast core xy or regular version? Unfortunately I have no core xy for testing my self.