The OS/2 and Windows shells together, complement features missing in the other. The sort of hacks you can do with REXX and the WPS don't cut it in Windows, but MSFT got the idea right when they had proper files, rather than just EAs for their shell. I even added items to a windows desktop remotely. IBM gave a lot of flexibility to the REXX api to the shell, but the SETUP string was a single element, and it could had been something akin to an environment in an INI file.
One could had done some interesting things with PIF files. For example, they could had launched an application off-path, and the same icon could have had several pages for different operating systems, so for example, the Boxer.pif could launch boxer, tko or boxer/2 for different operating systems. You put a mob of these in a directory and you could launch different applications without having to go to the desktop, or some menuing system.
So, you could have a fairly decent file patcher, and still just have a single link in the PIF file.
EXTPROC in OS/2, is the DOS version of the UNIX /! thing. Where in UNIX, you have to have perl in /usr/bin/perl or something, in the new shell, it would simply look for perl.pif, either in the pif or extproc directory. Doing this means you could run the same perl script under different environments. Extproc could be added to other languages, so one could see or launch a script under something like FAR or some other program that takes an external script.
For example, the OS/2 EWS "StartDOS" expects a REXX script as input, so if you made REXX handle EXTPROC, you could start the startDOS script as extproc /rexx StartDOS
Alternate DOS/Unix command line personalities, so that programs that look for UNIX or DOS would not have to be rewritten. Likewise, you could convert the drives into different pointers in the unix system, so that you could have multiple cwd's (eg subst c: /usr )
Run a file under a different extension. You can already do things like start OEMSETUP.BIN with the extension, and many utilities load .TMP, .MOD etc as exe files, so it's hardly a bug there. Note that in Windows 98+, the xcopy32.mod is just xcopy.exe, and works without the other files if so loaded. What it can do is to allow you to open an exe as a rar file, etc, eg open .rar rarexe.exe would instruct RAR to open it as a rar file.
Clipboard and Select interface from the command line. You could do things like 'select = ls pk*.*' , which would add the output files of the ls command to the select list, select /a is append to the list, and then /copy. /paste. /cut, /all, /move /reverse, /u would do various things to the list. @select is then a virtual list that can be used in any command that accepts lists.
Multiple desktops at session level. Something like LaTeX involves lots of little files in the path, which are largely used purely for Latex. A TeX desktop (by setting desktop=tex in the PIF), might open up a window of utilities that share more or less like the same virtual machine. You create objects in there which inherit the common Latex settings, so ye could have an Editor in there, like WinEdit, etc. When you are not playing LaTeX, these are no longer in the path. These could be in 'groups' like Win31 Progman, and you put links out to the common paths.
Multi-language interface, so one can use REXX. Lua, or a variety of other languages to access system functions. Something like 'fdisk' might report things like the size and file system of a device, and a function-call like call 'fdisk' diskfree, 'c:' could be used in any script, including command.com.
Network as a separate desktop, so one can be logged into several networks at once.