In Cycles, when I convert from one output type to a different input type, what is REALLY happening? So, I've been following the blender guru's video tutorial for shading of dialectic materials.  He uses something very much like this setup:



(He starts talking about it not long before 28:44.)

However, I see a few things here I don't understand, although it appears to offer the desired behavior.  These questions pertain ONLY to the Bump, Geometry and the mix node they go into; you can basically ignore the rest of the setup.

1.) What is the bump node doing?  He describes it as "reminding" blender that it is dealing with vectors, but that almost makes it sound like there is an "if" statement within blender to check input types, which seems hacky because it might be inconsistent among applications. 

2.) What really happens when I mismatch inputs and outputs, (ie, the blue vector going into a green color node.)

And you can consider the whole question for this bit: why does the "Value" node only go into the roughness of the Glossy color?  Why would it not be both?

Thanks a lot in advance!
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.