У этого подхода есть пара (потенциально незначительных) преимуществ.
Наиболее убедительные преимущества возникают из-за отсутствия необходимости объединять изменения обратно в основную ветку. Это позволяет легко сохранить ветку (старый «ствол») для версии, в которой вы выполняли ветвление, а также не требует усилий для продолжения в ветке dev. В действительности это ничем не отличается от наличия одного живого ствола и пометки или ветвления для релиза, за исключением того, что вы «перемещаете» свою разработку вместо того, чтобы перемещать свою помеченную ветку. Это может упростить поддержание чистых веток с меньшими усилиями, поскольку нет необходимости «отмечать» новую ветку для каждого выпуска - это просто происходит автоматически. Это небольшая экономия времени.
По моему опыту, есть один потенциальный недостаток. Я часто обнаруживал, что такой подход часто облегчает разработчикам случайное нарушение бинарной совместимости в библиотеках, так как вы всегда работаете над копией разработки, и каждый «выпуск» является отдельной веткой от этого. Поскольку для объединения обратно в магистраль не требуется никаких усилий, можно легко случайно сломать API. Это не главная проблема IMO, но об этом следует знать, поскольку в процессе слияния не предпринимается никаких усилий (что, по-видимому, часто обнаруживает большинство этих ошибок).