Why 2 zero-crossing detection circuits in heater?
What could be the reason for having those 2 separate circuits?


The opto U1 produces a square wave output in phase with the incoming AC and is probably used as a zero crossing detector by the MCU. If the AC level drops it will still produce a square wave i.e. it is a digital detector of the AC power voltage and will hardly vary its signal even if the incoming supply dropped by a half.

D6, R7 and R8 in combination with the unspecified filter capacitor C4 measure the peak voltage of the secondary and that is probably used by the MCU to determine what the line AC level is. Knowing the line level you could, for instance, alter the triac duty cycle so that on low AC voltages it stayed conducting for longer. 

Short story is: heater power level control irrespective of AC supply voltages.