Потому что, когда вы объединяете, вы не рассматриваете наборы изменений в середине ветвей, так как они расходятся. Git в основном учитывает различия между кончиками двух веток, которые вы объединяете, и точкой, в которой они расходятся. Если у вас есть ревизия в другой ветке, которая может привести к конфликту, но есть более поздняя ревизия, которая заботится о разделе кода, вызывающем конфликт, таким образом, чтобы конфликт больше не происходил (например, возвращая ревизию, создал бы конфликт ... не единственный путь, но тот, который непременно позаботится о конфликте), слияние не увидит всплывающего конфликта, тогда как при перебазировке это произойдет.