Sometimes the built-in shader converter generates inefficient code unnecessarily, like dependent texture reads (calculating texture coordinates in fragment shader, slow on iOS).
But Unity will not convert those over to CG for you, it’ll only convert CG over to the other platforms.
Here’s a really simple shader I wrote for a project I’m working on - that has a GLSL shader first, and then a CG equivalent afterwards (the hardware will run the first subshader it comes to that it can render).
However, Unity’s CG > GLSL is - for the most part - pretty good. I’d only revert to writing raw GLSL if you really need to (i.e. you know the converter is making unoptimised code that you’re certain is slowing down your framerate).