Scene Management:
The ABT (Adaptive Binary Tree) scene manager does the job very well I think, given that it calculates the scene tree during runtime. It was mainly designed for model/terrain based outdoor scenes, because outdoor stuff was a huge pain in the ass with BSP - where the scene tree was precalculated, and for open areas it simply sucked because you usually had "just one" scene node.. no optimization done.
The thing is, all versions below pro use actually ABT trees for rendering - so if you would upgrade to PRO, scene management would be only a valid consideration if you are doing indoor scenes and want to switch to BSP

Shader Compiler:
It only works for "static" shaders... some of the shader packages here do some sort of dynamic compilation of shaders to be more flexible. I know that my SSAO solution does this, and I am not sure if it is done in Shade-C. But most regular shaders can be compiled. The returned FXO files are the already compiled shaders and they are just dumped into memory - hence the faster loading speed. You can also put them into WRS files... so this is a nice thing, really.
WRS files:
Some people claim that they can hack the WRS format and I know only two people here that had success with it. However, the thing is: if someone is really into hacking your game, he will succeed. And: If you really throw in strong encryption... it might be harder to hack your stuff, but your game has to encode it as welll, which makes it slower, and it needs maybe more memory and so on.
For instance, a lot if the popular, major AAA games in which content is "encoded" or stored in proprietary formats... they all get "hacked" sooner or later and then they have an active modding scene.
I really share the opinion of Superku.
One additional remark: you can select WRS files during runtime, which enables the following possibilities:
- LOCALIZATION: write a function "STRING* get_lang_str(STRING* key)" and store your strings etc. into files which can be read from WRS. Then, put all your string content depending on the language into multiple WRS files "lang_en.wrs", "lang_de.wrs", "lang_fr.wrs", etc... and use add_resource to load the WRS file for the desired language
- TEXTURE QUALITY: generate from your hi-res textures medium and low quality versions and put them into WRS files "tex_hi.wrs", "tex_med.wrs" and "tex_lo.wrs" ... because they all have the same filenames, but you load the WRS depending on the user choice, you can dynamically change texture quality and therefore memory footprint by switching WRS files
- UPDATES / PATCHES: when delivering a new patch you simply have to update the EXE file for code patches or just a WRS for content patches
Using one WRS file to put all your content into one single encoded file is maybe the most used approach here, but if you combine it with add_resource and the fact, that different WRS files can contain files with the same name, you can really do advanced stuff! Very recommended!
Starter Screen:
It is very unprofessional to show the default splashscreen, yes. - But if you are using "static" resources like SOUND* m = "mymusic.ogg" and such, the engine loads it on startup, and when it takes longer, it is *very nice* to have a feedback about this. So putting an image of your game on the screen and showing the progress bar is a nice thing to have.
On the other hand, games should be written (in my oppinion) that all content is loaded during runtime and/or streamed ... because it just feels better to click that EXE and -voila!- the game is there, full screen and already running. So, in that case I would like to disable the starter window.
In any case, it makes sense to buy pro just to do this when releasing demos/the full game to the public for the sake of "polishness".