Reading this article is the first I've heard of JPS, but it seems simple enough and it's the opposite of what you said. Instead of examining more tiles, you exclude more tiles immediately. In the example of moving diagonally across a large, square room, JPS would never examine any tiles *except* the diagonals unless it hit an obstacle. It would go straight to the goal.

That's exactly what regular A* would do, but that's not what's described in the paper. Algorithm 2, function "jump", in the paper is essentially this:

Jump:

1. Step one square in the current direction

2. If the square is a wall, there's no jump point. Return null.

3. If the square is the goal, or is next to a wall, return this point as a jump point.

4. If we're moving diagonally:

Recursively call Jump, moving horizontally.

Recursively call Jump, moving vertically.

5. Recursively call jump moving the same direction.

So after each diagonal step, it scans an entire horizontal row, then an entire vertical row, then steps diagonally again, and so forth. It needs to scan the horizontal and vertical lines first, because if they contain any jump points, the square on the diagonal also becomes a jump point.

Here's an image from the paper. The dashed lines are the horizontal and vertical lines that are checked while checking the diagonal.