I call that distinction the difference between an elegant and a clever solution. Clever being what you mention.
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.