Я не думаю, что это на самом деле фиксирует смещения так часто, как вы ожидаете, поэтому, когда потребитель перезапускается, группа перебалансируется, а затем берет самое последнее смещение с автоматическим подтверждением.
Передача происходит только периодически (5 секунд, в зависимости от конфигурации), а не на основе сообщений на сообщения. Таким образом, следует ожидать, что дублированные данные получат не более 5 секунд, но не начало темы, если только смещения не фиксируются вообще (для этого необходимо настроить простое ведение журнала log4j на клиентах)
Если вы хотите более точное управление, отключите автоматическую фиксацию смещения и вызовите методы commitSync или commitAsync объекта Consumer (это методы основного Java API, не уверен насчет Spring)
Одним из вариантов может быть обновление клиентов Spring, как говорит Гари ниже. Поскольку вы работаете с Kafka 0.10.2+, это не должно быть проблемой.