Les shaders sont un cas particulier. Il n'y a pas de format de fichier spécifique, c'est juste du texte brut. Donc quand tu as un shader en mémoire, c'est vraiment juste une chaîne de caractères.
Ceci-dit pour des raisons de cohérence, renommer en loadFromString (et aussi fournir le loadFromMemory void*/size_t) ne serait peut-être pas idiot.