Cleverness for it's own sake may be a bad thing, but cleverness in general isn't bad.
The really important thing is that when you do something clever, you ensure that people who use your clever function/module/library/webservice don't have to also understand your cleverness.
Leaky abstractions can be worse than no abstraction.
This is a bit of a tangent though. With respect to the micro level cleverness mentioned in the article:
Simply naming the output of those helper functions would go a long way...
The really important thing is that when you do something clever, you ensure that people who use your clever function/module/library/webservice don't have to also understand your cleverness.
Leaky abstractions can be worse than no abstraction.
This is a bit of a tangent though. With respect to the micro level cleverness mentioned in the article:
Simply naming the output of those helper functions would go a long way...