Да, согласно документации: https://www.opengl.org/sdk/docs/man/html/glLinkProgram.xhtml
Обновляется информационный журнал объекта программы, и программа
генерируется во время операции ссылки. После операции ссылки,
приложения могут модифицировать вложенные шейдерные объекты, компилировать
прикрепленные шейдерные объекты, отсоединение шейдерных объектов, удаление шейдерных объектов,
и прикрепить дополнительные шейдерные объекты. Ни одна из этих операций не влияет
информационный журнал или программа, являющаяся частью программного объекта.
Подводя итог: «После операции связывания приложения могут ... удалять шейдерные объекты. Ни одна из этих операций не влияет на ... программу, являющуюся частью программного объекта."
Это дает вам больше возможностей, чем вы думаете, согласно ответу BuzzSaw. В частности, вы можете удалить шейдер, который, как говорит theBuzzSaw, фактически не удалит шейдер, пока он не отсоединится. Но после связывания вы также можете отсоединить шейдер, что позволит вам полностью удалить его --- и на связанную программу это не повлияет.
Это раннее удаление шейдера используется в этом уроке:
http://www.opengl -tutorial.org / начинающих-учебники / учебник-2--первый-треугольник /
(хотя это прямо там не объясняется).