Counterargument: you don't always know when you start writing a document how many levels of heading you're going to end up needing. A rough outline is inherently top-down, not bottom-up, so keeping your granularity options open makes sense.
#### = h1; # = h4 initially.
If you have ##### (5) anywhere in your document, then ##### = h1 and # = h5.
If you have ###### (6) anywhere in your document, then ###### = h1 and # = h6.
Another (minor) thought: if you're the type who starts by outlining the whole doc with headers only, the Markdown approach naturally makes indentation follow structure.
The most complex behaviour is tables, and even there you can easily spot where the parsers simply go character by character along the line with no difference other than being in "table mode" (or for code fences, in "code mode")