It’s a good question whether to choose Irrlicht or shaders or both to render the game scene. It looks like much easier to use Irrlicht until there is a problem that it can not solve (yet). Well, there’s a problem with all such engines, especially “open source”. And here you are, working on improving the engine instead of making a game.
Choosing shaders on the other hand gives you all the flexibility you need, but it takes time.
The most unexpected was to find out that if you choose to use shaders with Irrlicht, you can’t really use all that built-in functionality like shadows or fog at the same time. Once you chose to use a shader material you need to implement every effect with shaders.
So, the idea is: start with making the right choice.