And I can say that it has honestly been for the better. I have been working for a while on a 2D sprite engine using an OpenGL backend that I am affectionately nicknaming Horde2D (internal name is DARS, or DAta Rendering System) as I am using many of the same concepts of precaching and exposing resources via handles, or in this case smart pointers. I'm probably not going to expose it C style as Horde is, and probably won't be releasing it at all, as I plan on the rendering engine to be an integral part of my game engine, but later on I might. Another problem is that I am not nearly versed enough in OpenGL to break away from fixed functionality, but I'm learning. Cool thing is though that the entire system is currently no more than 229 lines of code not including the API adapter I am writing to couple the system with the rest of the engine and the libraries it depends on (TinyXML and zlib... or at least a wrapper I found, and boost). It is literally all in two files. If anyone wants to help me out, PM me and I'll send you a copy of the code and maybe this could turn out better than I thought it would.
This is where everyone chimes in saying "Cool story bro."