Interview: Why architects should know code?

Recently I interviewed a software architect I highly respected on why architects should know code.
The following is not a complete list or in any way representative of my opinion. It’s absolutely not necessary to be a (good) coder to become a Salesforce architect, but I found the input very interesting. I’m curious what you think?

Why architects should be able to code:

– First and last line of defense
– Understand what’s possible
– Challenge developers
– Understands the principles behind software
– Understand Salesforce on a deeper level
– Forget the language, learn the concepts:
– Object-Oriented Programming
– Functional Code
– (Enterprise) patterns
– Decoupling
– Adapter patterns
– Understand what production and enterprise-ready code looks like
– Learn to smell bad code
– Understand the difference between working code and good code
– Build for change: How is it to change something?