Good article. A few points.
1) Inheritance is highly overrated and should never be more than two levels deep, Multiple inheritance should get prison time. Anyone who ever saw ATL in a debugger needs no explanation.
2) code-level optimization is almost always wrong. Most optimization should be at the design level or in the database schema and queries. Whiteboard interviews (spits) encourage the idea of optimizing even the most performance-uncritical code, and optimization breaks rules and is unstable.
3) simplicity is its own virtue and legibility is the undiscovered continent of software development.