Depois de ter um programa vinculado e pensando em programação defensiva, devo excluir e desanexar os shaders usados para vincular esse programa?
Se sim, isso vai liberar algum recurso? Ou esses objetos de sombreador só serão liberados após uma chamada glDeleteProgram?
edit: Apenas para esclarecer o que estou fazendo é (o que é consistente com a resposta):
glCreateShader -> glShaderSource -> glCompileShader -> glCreateProgram -> glAttachShader -> glLinkProgram -> glDetachShader -> glDeleteShader -> desenhe usando este programa de sombreador -> e quando eu não precisar mais desse sombreador glDeleteProgram