Cura generated gcode unnecessary delay?

Poking around in my gcode file, I wonder why the M140 command is done after the home/retract command. It seems to waste time unnecessarily.

M117 Heating...           ; progress indicator message on LCD
M109 R170                 ; soften filament before homing Z 
G28                       ; Home all axis
G1 E-15 F100              ; retract filament
M140 S105.0               ; start bed heating up
M104 S170                 ; start extruder heating to probe temp
M190 S105.0               ; wait for bed to reach printing temp
G29                       ; start auto leveling
G0 X0 Y0 F5000
M109 R245                 ; wait for extruder to reach initial printing temp

But I am wondering why it shouldn’t be this instead:

M117 Heating...           ; progress indicator message on LCD
M140 S105.0               ; Get the bed heating up ealier
M109 R170                 ; soften filament before homing Z 
G28                       ; Home all axis
G1 E-15 F100              ; retract filament
M104 S170                 ; start extruder heating to probe temp
M190 S105.0               ; wait for bed to reach printing temp
G29                       ; start auto leveling
G0 X0 Y0 F5000
M109 R245                 ; wait for extruder to reach initial printing temp

I am guessing there is a good reason? Otherwise the start of a print is delayed unnecessarily.

I can only speculate about possible reasons.

  1. Print farms drawing too much current at the same time? (seems unlikely)
  2. Worried that filiment will get stuck to bed if bed is heated before the home/retract?