Perhaps this has been discussed before, but I couldn't find it. Consequently, I'd like to open a discussion about...
Begin On Server
This would be two new script steps similar to if/end if: Begin on Server and End on Server. In the middle, one would have steps that would be performed on the server rather than locally - no need to create a distinct script for PSOS.
This new functionality would send the layout, found set, sort, local (not global) variables, et cetera to the server. The server would open the file and know not to do any typical open scripts, but go immediately to the context and found set (again, bypassing any script triggers getting us to the same place on the server where we are on the client). It would perform the next steps on the server and return control to the client after the EOS step.
Like PSOS, not all script steps would be available within this code block. Unlike PSOS there wouldn't be the option to not wait for the server to finish - it must finish on the server to continue the script.
If the scripting within the block resulted in a change of context or found set that would be transferred to the client at the end of the block.
This would be a natural extension (and probable eventual death of) the PSOS step, simplify coding (not having distinct scripts just so we can run them as PSOS; not having to work around the server running the file's opening routines; not having to setup the environment), and, essentially, any steps performed in the block would behave as if they were on the client but with improvements in speed.