Hi gdyvig!
... it contains a cursor at the extreme left
But... how... could you... detect the cursor?

It's so small...
Well, I need to check my eyes.

So,
I confirm FIP_SCANPIXELS parameter is used correctly.
There are some comments about your investigation.
If FIP_SCANPIXELS is equal to or greater than the number of pixels in the needle, an exhaustive search should be done rather than FIP_SCANPIXELS number of random pixel selections performed.
That's right. In this case there is no need to use random number selector at all.
SCAN_PIXELS=25, 100, 1000
Found=10-20 NotFound=80-90 NumFound=0-1
Same results in all three cases.
You will be surprised, but I've got the same result with FIP_SCANPIXELS=0

So, your analysis means the chance of the false finds equals ~10-20% even if you set FIP_SCANPIXELS=TotalNeedlePixels. In other words, a user have no guarantee to get correct result of a search. I suppose this is a serious disadvantage.
I was wondering what time an exhaustive search is really taking. I had added a timer in my script. And then I had made a test with 1920x1200 Haystack-image and 100x100 Needle-image (also I had set FIP_SCANPIXELS=10000). The result is 15 seconds (or 150 milliseconds per search (as k=100)).
Not bad!
So, I agree with you. It would be a good idea to enhance a process of scan pixel selection.
It also would be useful to perform search with all pixels scanning if FIP_SCANPIXELS=Max (or may be FIP_SCANPIXELS=0).