This would save nothing. You'd just be iterating through the OpenGL-side list of textures and culling from them certain specific ones to modify. In either case, you're iterating over a list. The only thing you
GenerateMissingMipMaps(GLuint* textures, GLuint count) is more generic as the simple GenerateMissingMipmaps() which would need to query the list from the glAPI. On the other hand it would safe the work of iterating through the application-side list of textures and building a GLuint* from it.
So what you want is this:
The context gets set up, shader sources are read and compiled and then the main-Loop starts.
Being able to query for the existence of named strings and an additional type, namely SHADER_SOURCE, an application could read in all sources and includes without keeping it's own list of files that were read in, then compile all SHADER_SOURCE strings just keeping a list of compiled shaders with their Name, and after compilation free all named strings. Steps two and three could be done in a general, reusable way, This can - again - easily be realized by shifting the list-keeping to the user of the api.