> вообще-то есть масса workflow, где rebase особо не используется.если кодить не ~ хеллоу ворлд, то таких workflow нет. Конечно, можно не пользоваться ребейзом и делать как-то иначе, но это от неопытности разработчика и/или из-за ограничения используемой VCS.
> Самое простое - если задача делится на много простых фич/тасков, каждая живёт в своей ветке и merge --squash когда готова
Цикл разработки почти всегда делится на мелкие задачи, но это деление в основном последовательное, а не паралельное. Т.е. нельзя насоздавать сразу N веток и пилить в них одновременно несколько мелких задач. Тут можно развести много бла-бла-бда на тему тщательного планирования и поэтапного выполнения работы, но это невозможно для сколь- нибудь сложного проекта. И это тупо неудобно.
Если ребейзом не пользоваться, то реп сразу же становится помойкой из комитов с коментами типа "fix", а если часто налегать squash, то в сборище беспощадных и бессмысленных мегакоммитов. В общем, во всех вариантах без ребейза реп превращается в тупой инкрементальный бэкап.