Es gibt ein paar (potentiell minor) Vorteile dieses Ansatzes.
Die überzeugendsten Vorteile ergeben sich aus der fehlenden Notwendigkeit, Änderungen in den Hauptzweig zusammenzuführen. Dies macht es einfach, eine Verzweigung (den alten "Stamm") für die Version zu behalten, in der Sie verzweigt haben, und es erfordert auch keine Mühe auf dem Dev-Zweig weiterzumachen. In Wirklichkeit ist das nicht anders als einen Live-Trunk zu haben und sich für eine Veröffentlichung zu markieren oder zu verzweigen - außer dass du deine Entwicklung "verschiebst", anstatt deinen getaggten Zweig zu bewegen. Dies macht es einfacher, saubere Zweige mit weniger Aufwand zu pflegen, da es nicht nötig ist, für jedes Release einen neuen Zweig zu "markieren" - es geschieht einfach automatisch. Dies ist jedoch eine geringfügige Zeitersparnis.
Meiner Erfahrung nach gibt es jedoch einen potenziellen Nachteil. Ich habe oft festgestellt, dass es für Entwickler oft einfacher ist, Binärkompatibilität in Bibliotheken zu unterbrechen, da Sie immer an einer Entwicklungskopie arbeiten und jedes "Release" ein eigener Zweig davon ist. Da beim Zusammenführen mit einem Stamm kein Aufwand erforderlich ist, kann es leicht passieren, dass eine API versehentlich unterbrochen wird. Dies ist keine große Sorge IMO, aber ist etwas zu beachten, da es keine Anstrengung während des Merge-Prozesses (die scheint, wo die meisten dieser Fehler oft entdeckt werden) ist.