Extract from [exec] man page: "When attempting to execute an application, exec first searches for the name as it was specified. Then, in order, .com, .exe, and .bat are appended to the end of the specified name and it searches for the longer name."
However, in [auto_execok], the search order is currently opposite: it first looks for all different extensions in the first directory of the search path. Then it goes on to the second directory in the search path, etc.
The attached patch aligns [auto_execok] with [exec].