What happens when you plug a BSDF (shader) socket into a value (float/color/vector) socket, or vice-versa? Obviously there is no way to convert a function to a value, so what does blender do?
From some simple testing it seems that it converts the BSDF to 0.5
, but sparked by the discussion in comments on this answer I would like a more definitive answer.