The whole point of keeping a pristine trunk and doing development on branches is that you keep
the trunk in a state where it could theoretically be released at any time. Of course, this
does not remove the need for QA before doing a release.
As feature work is being done on branches, it does not affect the trunk until it is complete
and merged. If it is not ready for a release, then it doesn't get merged til after the
release (and this isn't such a bad thing because you know when that next release will occur).