I think people should be able to declaratively enable publishing. How this should happen is a good question.
One option is maybe to make it the default, and provide some way to opt-out.
If it's opt-in, then one option we've been looking at is to add a nested block to enable publishing, along with some configuration.