This is actually mostly a workaround to support a misunderstanding left by the documentation which didn't get updated properly. Opcodes 2 (save) and 3 (load) should use the following syntax:
xcall MIAMEX, MX_WINSETTINGS, op, file$, status
However, the documentation didn't mention this and instead gave only the syntax for opcodes 0 and 1:
xcall MIAMEX, MX_WINSETTINGS, op, id, value
Since there is no specific "id" value corresponding to the filename, some people were trying to save the settings to the current ash file using:
xcall MIAMEX, MX_WINSETTINGS, 2, 0, 0
But this was actually trying to save the settings to the file:
<current logged in path>\0.ash
(In some cases, it was trying to make the file name be 0.00000, in which case it generally displayed a message box saying that it failed.)
The refinement is that now, when the file$ argument is "0" or "", it is interpreted as meaning that you want to save to or load from the current settings file.