I created a keese type enemy with bat movement and 255 homing factor to test if the lined up function was bugged. Or if it was something else.
Here's the result. Link's position is the blue square. The black line is the path of the keese.
Despite not being lined up diagonally it always follows that path.