GUI Text is “3D” (that is to say, it’s a mesh like any other). And it uses bitmap fonts. You can cut the pixels off however you want in the fragment shader.
If I understand it correctly, Unity simply generates the atlases on the fly for GUIText.
The issue I have is that I’ve not been able to get it to draw behind other objects. It seems to ignore the queue order on shaders I’ve tried.
What you’re looking for is called depth or Z testing, not clipping. The reason 3D text appears on top of everything by default is that it uses the default text shader, which has ZTest Always set. Use pretty much any other shader and it should work, or make your own version of that shader which has the normal ZTest LEqual.
To be clear, I can get this to work just fine on 3DText.
However, objects with a GUIText component don’t work with the same shader that works for 3DText.