Answer from spring-data github issues:
The referenced fragment points to the commons part of the documentation with limited applicability. Is-New detection for all modules but JPA works that way, assuming that the initial value of a primitive version is zero and zero indicates a state before it has been inserted into the database. Once inserted in the database, the value is one.
However, with JPA, we're building on top of Hibernate and we have to align with Hibernates mechanism that considers zero as first version number and so we cannot use primitive version columns to detect the is-new state.
The Spring Data JPA Entity-State detection uses a slightly different wording at https://docs.spring.io/spring-data/jpa/reference/jpa/entity-persistence.html#jpa.entity-persistence.saving-entities.strategies, however, it doesn't point out that primitive version properties are not considered so I'm going to update the docs.