First, thank you for the very nicely organized and annotated traces which made it very easy to zero in on the differences.
Second, it happened in 1640.0 (so disregard my comments about the 1633.5 patch). But the aspect of the change affecting you isn't quite captured by the description in the release notes:
APEX fix/refinement: the print-as-intended button now acts the same as the print dialog button when the intended printer is PROMPT. The differences between the two operations make sense in the case where the application requested a specific printer, but was only causing confusion in the case where the application was leaving it to the user.
Finally (and perhaps unfortunately, considering the negative effect on your situation), I'm not convinced that the current behavior is wrong, or if it is, how to resolve it for you without breaking it for someone else.
In the most general terms, APEX suffers from the inherent tension between letting users take control of printing vs. letting the application have its way.
To get more specific, the problem which 1640.0 fixed (even if the release notes didn't explain that) was that of trying to preserve the relevant configuration settings from the original PQI file (corresponding to the printer name passed by the application in the XCALL SPOOL) when the user selects a different printer. For example if the application specified a logical printer with a certain character size specification, say 100 columns by 72 lines, but the user then selected a different printer from the APEX printer selection menu, most likely we would want to try to preserve that 100 x 72 layout for the new printer.
The way that was accomplished was to pass the print request back through the "front door" which contains the logic to a) start with the settings passed in the XCALL SPOOL (directly from the app or indirectly from APEX), and b) load the PQI file for the new printer if there is one.
Since 99% of the time, Windows printer names do not match up with A-Shell PQI names, we typically ended up getting the benefit of (a) and not (b) in the above procedure.
But in your case, the fact that you've renamed the Windows printers to match the A-Shell PQI names, selecting a new printer from the APEX printer selection dialog results in processing the new PQI.
It's impossible at this point to intuit the degree to which any special configuration settings intended by the application should be maintained or override those that are part of the new printer's configuration, or the extent to which the operator is even aware of the possible conflicts. For example, the application may have wanted a certain paper size and therefore a printer name whose PQI specified that size and/or the corresponding BIN. When the user switched to a new printer, presumably they didn't want to change the paper size, but maybe the corresponding BIN is different in the new printer. Or maybe the printers have different setup commands which are invoked by a PREFIX reference in the PQI file?
It's just not obvious which is the best approach here, but it seems like when it doubt, it makes more sense to process a PQI file that corresponds to the requested printer than to ignore it.
I can think of a couple of possible approaches to splitting the difference, but I'm not sure I fully understand the subtleties of your setup. One idea would be for APEX to automatically set PASSTHROUGH=OFF whenever printing. (The whole concept of APEX kind of falls apart when it comes to dealing with printer-specific ESC sequences, since there's no way for APEX to know how to represent the result visually; what would be the value of a preview otherwise?) But, APEX can still be useful in apps that use PASSTHROUGH printing, by temporarily switching to GDI printing and applying some common-sense defaults to the font size logic, i.e. try to shrink the to fit width of the paper. You can then see a reasonable facsimile of the output, and if you decide to print-as-intended, it can switch back to passthrough mode to get the exact result you would have gotten without APEX.
Another idea would be to add yet another SPOOL switch to explicitly tell A-Shell to not look for the PQI file. APEX could specify that switch when printing from the printer selection dialog. But that would only be needed in the case where the Windows printer names matched existing PQI names. Which leads back to the question of why you set it up this way in the first place. The only real benefit I can see to matching names is exactly the one you're trying to avoid, i.e. being able to work backwards from the Windows printer name (when selected externally by the user) to the corresponding A-Shell name and PQI file.
As always, I'm open to suggestions.