How the Fresnel effect works and how to construct Physically-Based shaders in Blender? In this youtube video Cynicatpro explains how Fresnel works and builds a shader for dielectric materials. In explaining how roughness has an impact on the fresnel effect and how to simulate that in Blender he built this Fresnel node group:



When introducing the Geometry node he loses me. I think I understand why the "standard" Fresnel node has the Normal as an input (EDIT: I now think I don't). And I understand why roughness has an impact on Fresnel. But I don't understand why the Geometry - Incoming should be a "good" approach for simulating the effect of roughness on Fresnel. Who can explain ?

BOUNTY QUESTION:

The answers of @Leander and @lbalazscs were certainly helpful but I still don't truly understand how the current Fresnel node works and why CynicatPro is constructing a Fresnel node group with the "average normal" and the "Geometry - Incoming".

I did some reading like this about microfacet normals (and also papers on that like this one and this one), but most of these papers are full of math and are too high brow for me. This document about PBR was really helpful and it makes me understand things like diffuse, normal reflectiveness, roughness, fresnel and even microfacets. 

But I cannot make the switch to Blender. Why is the standard Fresnel node using the average normal and does the Fresnel node group use this average normal and the incoming rays. I think I understand what he tries to accomplish but I don't understand the model. Who can explain and not use high-level math ?

What I am looking for ... 

A) an explanation on a conceptual level (without diving into the math) how things like diffuse, normal reflectiveness, fresnel, average normals, incident light and reflected light, microfacets and roughness relate would be very nice but 

B) an explanation of the "CynicatPro Fresnel node group" is maybe the most important part of my question. 

I am not asking a complete syllabus ... I have done some readings. 

I think a real understanding how to construct Physically Based shaders is crucial for photorealistic rendering and this starts with a real understanding of concepts and the tools of Blender. I am happy to raise the Bounty is someone feels that this is adequate. 

EDIT: Now I better understand how the normal input is used I understand that the Fresnel node is fed with a normal input. This normal input comes from the Mix node. Now ...

A) what is Geometry - Incoming ? Is this the incoming ray like shown in the image below ? Or is it the incoming ray into the camera ?

  

B) What is exactly what the Mix node produces ? What normal ??
[Pseudo explanation.]

The normal gives us the normal surface orientation for each surface point. The incoming output gives us the direction of incoming camera ray. In the "middle" of a sphere the normal will be pointing directly towards the camera, hence at that point (only) the incoming and normal vector will be equal.




We are especially interested in the small incoming angle, where the glossyness will be stronger. If we sample a surface area on the "side" of the sphere (from camera view) the incoming and reflected rays have a small angle.



The more rough the surface gets, the more rays will be reflected in the direction of incoming.


With the roughness converging towards 1, the ratio of incoming reflected to normal reflected direction will also converge towards 1. The ratio is represented by the slider, switching from normal glossy reflection to (fake) incoming normal reflection.