Me sits here feeling slightly miffed

that my explanation (reply#8)
of the reason why timer += increment is the better way is quietly ignored by Robin2
-- only to be repeated by PeterH (reply#17)

(and I am sure PeterH invented his own).
Robin2 -
void loop() {
delay(12) ;
Serial.println(millis()) ;
}
millis() now increases by 12 in each loop ! Eh?! And sometimes by 13. Eh eh!?!?
SECOND ... (though, I had forgotten) The code in "BlinkWithouDelay" uses "previousMillis = currentMillis; "
Unfortunatly there are several things missing, misleading and sometimes plain wrong in the reference/tutorials.
These have been pointed out, but the Arduino team has choosen not to use advice from this forum on that matter.
MY CONCLUSION ... is that this is a discussion about angels on the head of a pin
You're entitled to your point of view. However, this is not a religous point - it is mathematically deterministically provable true.
It may be for some applications the slippage/jittery is of no consequence, but it is there.
PeterH said it succinctly "
the fact that it's taking so long to explain it to you demonstrates that it's quite a subtle problem - but it is still a problem."