It is safe to say that the larger the game development project then the greater the odds that they use a game engine. Likewise, the larger the game development and/or the game engine development, then the greater the demand for a team to finish it well.
On the other hand, since you expect to stay at hobby status indefinitely, go ahead and have fun in exploring high and low level coding in the way that you expressed.
Diving into class libraries would be an efficient way of organizing your games and avoiding some of the "spaghetti" coding which tends to cause heart-attacks in debugging. I also would recommend OpenGL Version 3.1, but just my opinion. For sure, you don't want to go any lower than OpenGL 2.1, as far as I can see.