I think as you say, having a code of conduct does clarify to users how they are expected to behave in a certain sphere, and it's no means limiting to a certain pre-defined set of behaviours. Since of course, you are still free to define your code the way you feel is best for your community!
I think that open source is about freedom to create your own communities or areas where you feel comfortable, and I think it's important to respect that "the silverstripe community" is actually a collection of many communities, each of which has their own traits and preferences, or even different cultures and languages.
With that in mind, and the respect I have for those who wish to declare their support of a particular code, I think it's also important to respect the wishes of groups or individuals who are happy with the freedom of not declaring any code at all. If that works for them, I don't feel that we should penalise them for thinking differently to us.
So I guess my vote is for "non-penalised recommendation", and maybe simply point to our own code of conduct as a drop-in, and we continue to add this as a matter of habit (rather than of law) to our own modules under the silverstripe namespace.
The less we demand the more likely people will adopt the standard. Indeed, we should be demanding as little as possible, so as to avoid frustrating module maintainers. :)
Kind regards,
Damian