How is the Hessian evaluated?
The documentation for the Gaussian software is actually pretty complete, even if qualitative. On the subject of optimizations, I recommend you look up the freq and opt keywords. 

The manual explains the procedure followed by the Berny optimization as involving construction of an initial analytical estimate of the Hessian using a simplified force field, with subsequent optimization steps improving on that estimate using computed gradients. A number of options are provided for improving the initial estimate of the force constants where the defaults derived from the estimated Hessian are not good enough.

For frequency calculations, accuracy requires a good estimate of the full Hessian, better than estimates that might suffice for geometry optimizations. Gaussian allows for analytical computation of force constants for some of the methods (e.g. RHF) and uses analytical gradients to compute a numerical Hessian with some other methods, or if requested. In optimization cases where convergence is an issue, Gaussian facilitates convergence to a real minimum by employing the Opt=CalcAll keyword, which results in analytical (where possible) computation of the full Hessian (at some cost though).