For me it's quite clear that everything inside serverscripts should be considered legacy. Serverscripts are loaded with
<%RunScript()%> and within this scripting environment, you can't import ServerJs modules. Everything is global and this is by definition also less secure.
The goal is that we never write duplicated code or have to work with libraries with global functions. This idea is incompatible with serverscripts.
ServerJS allows you to share code between all filebases (Efficy, Extranet, Guest, Shared) and as well with Db Workflow.
With ServerJS we create structure by making folders and sub-folders. Each function should be stored in a separated file. On top of that file, import modules that are consumed by that global function. The library modules are true modules and by design private to the outside.
Conclusion, what you should use for new developments in Efficy 11.2+ are:
If you are only returning JSON, work only with runNodeAjax.
PS. Documentation will follow when it gets the highest priority :-)