To follow up my previous post on svn/git : Linus has posted a pretty thorough explanation on why he thinks that decentralized SCMs work better than centralized ones. Contrary to his talk at google, this post actually convinced me of his point. Even though it doesn’t apply to all projects (not Rosegarden, for instance, since there aren’t enough developpers to justify this), I now understand what benefits a decentralized system brings in terms of flexibility, with almost no drawbacks indeed.
It really boils down to this : creating a branch and merging it anywhere (i.e. not just to the trunk) should be a trivial operation. Once you have this, branches become a much more useful and versatile tool, and you can start thinking your development from a different perspective.