Because understanding exactly what program should do is more important than understanding what are best practices in CS, or how to abstract things.
If you can keep all interactions of your app in your head, then it doesn't matter how badly designed the code is. Architecture is only important because it makes it possible to change things without understanding the whole thing.
And complete understanding with bad architecture beats good architecture with incomplete understanding.
It's a fractal, yes, but you can do with only understanding your branch in the highest resolution, you don't need all the details of the whole system (if it's well designed).
If you can keep all interactions of your app in your head, then it doesn't matter how badly designed the code is. Architecture is only important because it makes it possible to change things without understanding the whole thing.
And complete understanding with bad architecture beats good architecture with incomplete understanding.