Perhaps you guys should read "Git Branches Considered Harmful" [1] in the ZeroMQ C4 documentation [2]. They have similar problems to D where there is no easy way to split up responsibility across the source code.
Basically they say branches should only be internal. To make a release one should fork the repo. Its better said in their docs though. It reads a bit like an RFC.

If you did that then build master could create the release forks.

[1] http://zguide.zeromq.org/page:chapter6#Git-Branches-Considered-Harmful
[2] http://zguide.zeromq.org/page:chapter6#The-MQ-Process-C