Я даже нарисовал схематично суть проблемы
Мы проверяем видимость из точки A в точку B по диагонали. Но геодата не умеет проверять видимость по диагонали, т.к. состоит из квадратов. Поэтому в случае с диагональю, мы проверяем, можно ли пройти в следующий квадрат через соседний.
Допустим, через соседа С1 пройти нельзя, а через соседа С2 можно. Ранее, если хотя бы один из соседей был непроходим, то забраковывался весь путь. Теперь, достаточно чтобы хотя-бы один из соседей был проходим. Это исправит все проблемы. Если конечно, нет каких-то дополнительных проблем.