In Cycles, when I convert from one output type to a different input type, what is REALLY happening?
1) It is to "initialize" the normal being used to the actual mesh normal. It's a little more proper to do this with the "normal" output of the geometry node instead of a bump node, but the result is the same. The bump node takes an input normal, and modifies it based on differences in the height input. Since the height and normal inputs are both disconnected, it just passes the default normal (which is the mesh normal). Since the vector is being modified via the mixRGB node, it doesn't know to initialize the normal with the mesh normal, and instead uses a constant vector.

2) As noted in the comments, see What is the meaning of the color of the node sockets in the node editor?

Re: Diffuse roughness: theoretically yes. Although in some testing I did once, I recall it giving weird results with high roughness, might be a limitation of the model used by the diffuse BSDF node. Which brings me to...

If you are using Blender 2.79 or later, you should be using the Principled BSDF node, not the setup described in that tutorial. That node setup is essentially an imperfect emulation of the Principled BSDF shader anyway. The mixing of normals is actually a hack to try and approximate roughness-dependent fresnel, which the Principled BSDF supports correctly. The Principled BSDF also correctly matches diffuse and glossy roughness, without you having to do anything.