I compile shaders all the time but never had the idea to replace .fx with .fxo in all scripts or to copy all fxo files to subfolders. The engine knows anyways if its an .fx or .fxo file to load, so why want you to replace all the names in the script?

Quote:
P If a precompiled effect (*.fxo) exists and is newer than the effect file (*.fx) from the material definition, the precompiled effect will be loaded. This will speed up material loading. It also makes it unnecessary to include the shader compiler (d3dcompiler_42.dll) in the published version when precompiled effects are included instead.

The only thing you really need is your step 1. Of course you can also do all the other steps, but I dont think its required for the script, its more a personal hobby then grin.

Shader compiling is highly recommended, it not only loads faster but your shader code is then protected, users cant decompile it. Otherwise even when you use WRS, the shader code can theoretically be ripped with a memory tool.