I've been complaining about this what feels like forever.
I think the Enemy AI checks to see if a potential Hero is within movement range for recruitment (regardless of Terrain/Units blocking advancement, etc), if the Hero is within range, the AI hires the Hero BEFORE initiating movement to reach the Hero, THEN executes the Movement phase. This gives the AI Stack effectively a Dual Move (or Triple depending on your PoV) and an undefendable Hero location (AI Check ignores obstacles)