Can you give practical examples of "should be" modules and what they are good for?
Modules right. By module i mean a piece of a pluggable architecture, but not just that, something that has a state and a set of specific cached data and is integrated in a system. That piece can be unplugged and replaced in real-time without affecting the engine current system status and functionality. Cached data is flushed and the fata is requested again for the new module to restore the engine status.
One of the biggest pratical advantages of this is debugging and error recovery. If something goes wrong or an error is detected in real-time the engine runs a recovery method and replace the module that caused the fault by another and recaches all data to get the engine running again in the same state.
Another is flexibility. You want to use the last techs like shaders just add an improved module or download it at the internet even without stoping your game and voila you can run your old games with shaders, shadows. However this wont change the game itself it would only improve effects that already exist or add new visual effects.
Why not classic & easy-to-use libraries?
A lot of people in these foruns could tell you why.
Supose you want to use OpenGL instead of DirectX you need to download the java3d sdk pre-compiled for OpenGL. You cant work with both systems without installing two JVMs. You want to use a software rendering with java3d for compatibility with the macs ? There isnt one and you cant do one because the code inside java3d is protected.
Another reason ? Because the code is protected you have to wait and be dependent of Sun politics and the team that is developing the technology to have access to the new features like pixel/vertex shaders. Hardly an acceptible solution for people that are targeting a product that uses the last tech and want to develop in a clean architecture like java.