Bad code has a cost associated with it as well, it takes time to reject it, explain why it's wrong, and deal with the frustration of someone less experienced. Unfortunately with some developers they want to push that off on the person writing the code and bear none of the burden.
I've seen the costs of the latter in open source projects I've worked on. People who feel encouraged stick around, support the community, and when given good feedback will often learn from it and submit better patches. Taking the time to communicate and make sure everyone feels included is part of the cost to get that.