Thank you all for you answers.

If I choose for myself, I'll definately go with OpenGL, but when I work on projects which are not for myself, I'm not the one making the decision, so I thought such kind of abstraction layer would be useful since it accomplishes the requirements and in the same time it will be beneficiant since it will provide a potential to extend to other graphic apis.

When Anton said "I want to try to put in my engine a well design abstraction layer" you heard "I want to make a powerfull 3d engine"
Mostly my aim was for a general purpose 3D rendering abstract api.
But to make it the right way seems very complex. So, I have given up the idea for now. Yet the topic is still interesting for me.

Here are some posts I found interesting:
- http://www.gamedev.net/topic/640055-...-to-rendering/
- http://gamedev.stackexchange.com/que...ring-component
- http://www.gamedev.net/topic/649416-...tx-opengl-etc/