Hypothetically, let's say you found the red point. Could you continue running the algorithm until you reach the cell the point is in, and assuming you haven't found an earlier intersection, return then?
I think that would be equivalent to caching the intersection, but a different way of thinking about it!
what happens if there are multiple intersections in the same cell? Like if the two circles in this example were shifted about half a cell ato the right?