Hi Matthew,
I opened example 21 and compiled it.
(One thing to note is that this example hasn't been "upgraded to NT6" yet, so it looks a bit funny, but I don't think that's affecting anything.)
the BrowseCustomers procedure has a Position Locator - if you select a sort column (I picked name) then the locator appears. I typed in a name (pay) - pressed tab - and it went to that position. I then typed bay, and again it only jumped back when I tabbed off the field. This was on the desktop (not mobile) using the FireFox browser.
I then went to the app, to the BrowseProducts procedure, and changed the locator there from "Position" to "Contains". Running the app I tested that with various entries, and again it seemed to work as expected.
So, in short, I'm not seeing either effect that you mentioned. I'm not sure if I'm doing it the same as you though, so please tell me more...
Cheers
Bruce