The "writes code" part is key to actually using software architects productively.
The times I have seen architects be productive additions it was essentially a job title for "a super-senior-developer who interacts with everyone." The times I have seen an architect be unproductive or a hinderance it was a job title for "someone who spends all their time telling other people how to code." I've even seen architects who were never coders: since I believe high-level design decisions are intimately linked to low-level design decisions the idea baffles me.
I agree. Reading through the comments I see that many people say that every develop should be an architect. Although I agree that developers should be able to think in terms of the larger picture, in my experience, certain developers either have more experience or are more capable of seeing how things fit together.
Some developers are better at the micro, others at the macro, and ideally you'll have one or two that can do both well. Personally I think it is good to have somebody who can work across teams and software areas to keep track of the bigger picture.
The times I have seen architects be productive additions it was essentially a job title for "a super-senior-developer who interacts with everyone." The times I have seen an architect be unproductive or a hinderance it was a job title for "someone who spends all their time telling other people how to code." I've even seen architects who were never coders: since I believe high-level design decisions are intimately linked to low-level design decisions the idea baffles me.