This is about how using delay affects how you look at coding.I liken code with delay() to a light wired to a button and power.The light is only on as long as you hold the button. Much code may be spent on ways around that. Without delay() the code is like a light wired to a switch and power.The light changes when you flip the switch. How to tell when to flip a switch, that's what to code.
I prefer the cooking analogy. When you bake a cake, do you stand at the oven for an hour while it cooks, or do you go off and do other things and come back to see if its done? That's delay() vs. millis().
I mostly use the millis() way to do things, but I still don't see what the cases in the opening have to do with delay().
I think button and switch are bad analogy for this, since they don't really descibe what's going on (at least with the explanation in the opening). The cooking analogy is much clearer. Also there are some grammar issues here, which make it much harder to understand.