Это из-за сочетания сразу двух особенностей.
Во-первых, используется небольшой fuzz для определения времени rekey. То есть если задано например 86400 секунд, то настоящий rekey начнется за 86400 - 8640 + 4320 * (rand() % 1) секунд. Это специально сделано, чтобы не было ситуации, когда IKE/CHILD SA удаляются по истечении времени жизни и только потом начинается rekey, что ведет к пропаданию трафика на время + чтобы избежать перегрузки канала и процессора, если настроено сразу несколько туннелей с одинаковым интервалом rekey. Потому в вашем случае rekey может быть инциирован любой из сторон, возможно двумя сторонами сразу, возможно с небольшим лагом друг от друга. Это может выглядеть как излишний rekey. Но в итоге это все равно отработает правильно.
Во-вторых, SA в ядре полудуплексные, но из-за особенностей настройки ядра в случае транспортного режима необходимо пересогласовывать каждую SA индивидуально, а для туннельного режима можно обойтись одним разом.