I often listen carefully to Chris Scott, one of the authors of ColdSpring. He has a keen mind for Application Architecture and Object Oriented Programming. Recently, while responding to a post on the ColdSpring-Dev list, he made a point that bears repeating. Rather than rephrase, I'd like to quote him directly:
There are tons of developers out there working on small teams that really don't need to be going crazy trying to protect their code against themselves. Larger projects, larger teams may very well set different standards[...] -Chris Scott
So often, the 'right answer' depends on all the elements in the equation. Architecture decisions are about effectively managing trade offs. The 'right' answer could be Extensibility over Simplicity, Performance over Maintainability, Clarity over Convenience.
A shop with 4 developers delivering lots of little projects has quite different needs over an enterprise with 50 developers supporting years of mission critical code. The cost of a mistake are not equal. The contributions of an individual is not equal. The measure of success is not equal. The 'right answer' is also not equal.
It is up to you, developers and architects to constantly educate yourself on technologies and standards. Be mindful of your environment. Challenge your viewpoints. Ask questions.
As for the 'right answer' I'll quote the ever wise Mr. Corfield, "It Depends".