> For instance, if you have a good experienced architect, a small amount of time spent on a high-level arcitecture will pay you back on even a slightly successful project. Not to mention it will increase your agility. E.g., don't design a sophisticated privilege mechanism until you know you need it. But if there's a reasonable chance a privilege mechanism will be important in the future, know where one would fit in in a way that wouldn't require a substantial rewrite. Now you'll be able to slot in a simple privilege mechanism, if/when you need one, and later replace/evolve that with a sophisticated one, if needed, all quickly and without substantial rewrites.
No. This is the most seductive myth in software development, and it's exactly what Agile exists to avoid.
I've worked with experienced architects. I've worked with very intelligent architects. I've worked with extremely highly paid architects. None of them ever managed to add value to the project rather than subtracting it.
Write the simplest thing that might possibly work. Write plain code that's easy to refactor. Ensure that your test cases (or better still your type system) capture your business requirements so that you can refactor fearlessly and mercilessly. And as if by magic, retrofitting that sophisticated privilege mechanism will turn out to be easy, because you don't have a bunch of architecture getting in your way.