So, supposedly Cycles calculates light bouncing around fairly accurately to life. If this is the case, and if Fresnel truly is an optical property due to the viewing angle, why doesn't it just happen? Why does there have to be a node for it?
Cycles could have a shader with in-built fresnel, in fact one is being worked on: https://developer.blender.org/D2313
The reason fresnel is a separate node used to mix diffuse/glossy shaders was an intentional design decision to allow more flexibility when putting shaders together. It allows you to mix shaders in any way you need. One problem with this is that a lot of the time you need to combine shaders in the same way. The alternative is an "ubershader" that combines everything in one black box, such as the Principled BSDF shader in that patch link. By adding the Principled BSDF as a shader node you'd have a single node when you needed a general-purpose physically based shader, or you can choose to roll your own shader combinations if you need more control.
The drill down into your core question of "why doesn't it just happen?": you don't just code "do things physically" and BAM, the renderer is realistic. You need to code each step of the rendering process so that it behaves the way real light would. In the case of Cycles shaders, this step is (currently) left to the user.