No one can be told what the Parse Order is, you have to see it for
Jest aside, parse order is a very tricky subject indeed. My PDF and blog article will help somewhat in grasping it, and some might find my Parse Order Pro sides helpful. But those only are pointers to a more general approach to EE's template parsing.
The point is, EE's parse order is linear; things happen after another. The things in this case is the replacing of tags and variables. The happen after another is the order we speak of. Things in the template are replaced, but can only be replaced if they are in the template. When certain tags or variables are put into the template after their parsing stage (according to my pdf) has passed, they will remain unparsed. This is the main reason parse order issues exist.
Now, the PDF and blog post only glances at module and plugin tags, but their parse order is intricate in its own. I tried to explain this in my Parse Order Pro slides, starting from slide #88. I could go on with explaining it, but this post might get too lengthy for that. Instead, I'll answer your last question.
Why not just have everything early parsed?
Main reason: security. The values of early parsed vars can be parsed by EE's template parser, which means they can potentially break the template. This is especially true if the variable type is a text input field or textarea. The user can put anything in there, including tags or even PHP if the template where the variable is present has that enabled. Developers who know what they're doing can use textareas with early parsing turned on (effectively Snippets), sure. But you can hide those, keeping the templates safe from your user's curious little hands.
So, keep your vars as late parsed vars, unless:
- You're using them as input for vars or tags
- You're using them in conditionals
- They contain other vars/tags
You could basically say: enable early parsing if you need the variable content in stages 2 to 8, leave it disabled if you don't.
Of course, you can also parse Low Variables during the Tags stage (#5), in which case having early parsing enabled is irrelevant.