It cannot preserve every Blender shader
GLB and separate glTF follow the same glTF material model. A complex Blender node graph, procedural texture, or renderer-specific effect may not look the same after either export.
Workaround
Use glTF-compatible material nodes where possible, bake procedural details into image textures when appropriate, and compare the result in the target viewer.