I agree completely but that shouldn't drive the way a team works.
If the convention says that the code should be as clever as it could be you will have problems. If your tech lead acknowledges some limitations on the team he will have to compromise cleverness for simplicity. And everybody will still learn.
I can't see why my first comment was downmodded, and it's happening for my last comments, confusing or bad grammar? :\
I don't think clever code implies obfuscated or difficult to read code.
Some of the most clever code I've read is conscious of when it breaks from convention.
Any intelligent person will unconsciously understand conventions and recognize their importance. They will also possess an intuition of when those conventions should be ignored, changed, or removed entirely. This is a part of skill acquisition they should be able to pass on to others in your team.
Overly strict adherence to convention only insures that the least-capable person on your team can contribute. Subsequently that person will never be encouraged to improve their skills. Blindly following convention says to me that you're willing to accept inefficiencies and poor design choices for the sake of maintainability by your least competent team member.
You need a mix; the most competent at the top to lead the least competent. Ideally everyone becomes the most competent at some point. Generally you will have people at various points on the ladder. This is a good thing.
We don't need egalitarian dogma ruffling with the food-chain. It's a pretty good system in many cases. :)
If the convention says that the code should be as clever as it could be you will have problems. If your tech lead acknowledges some limitations on the team he will have to compromise cleverness for simplicity. And everybody will still learn.
I can't see why my first comment was downmodded, and it's happening for my last comments, confusing or bad grammar? :\