If you have a choice between 500 lines of easy to understand, dumb code or 50 lines of abstract elegance, go with the easy to understand, dumb code.
If the programmer can't tell the difference when implementing, then go for a simpler version, as you suggest.
- Elegant: Nice, clean, well thought out.
- Clever: Hackish, terse, too hard to understand for whatever benefit it brings.