I'm continually unimpressed by a certain form of argument that I've seen in many places, but especially in the continuing discussions about closures in Java.
It goes like this: Feature X is great, and will make lots of code simpler, but there will be a lot of worse code because of it. Sometimes co-workers are mentioned, sometimes contractors who have to maintain the code without having months to learn its innards.
I think this boils down to two issues:
1. *I* would write bad code with Feature X.
2. I'm worried that I'll have to deal with bad code that uses Feature X.
Any healthy programming environment will not freeze code that is known to be bad in some way. It can be fixed, and lessons can be learned. If you seriously worry about your co-workers, watch their commits. If you worry about yourself, write some non-critical code that uses the feature a lot; perhaps a prototype, some unit tests or something unrelated to work.
With some exceptions, most programmers will write bad code before they learn how to write good code. Let them do so, and help them to get past it.
My co-workers would get it.