FPDF_INCREMENTAL can't actually do anything since the code below for adding new objects is no-op in case of incremental as on incremental it doesn't add any new objects, it just continues the for loop. Even on removing that part the changed objects are the Appearance streams in cases of form annnotations not the form object itself and we need to rewrite that too since we need to update the AP reference in the object.
void CPDF_Creator::InitNewObjNumOffsets() {
for (const auto& pair : *m_pDocument) {
const uint32_t objnum = pair.first;
if (m_IsIncremental ||
pair.second->GetObjNum() == CPDF_Object::kInvalidObjNum) {
continue;
}
if (m_pParser && m_pParser->IsValidObjectNumber(objnum) &&
!m_pParser->IsObjectFree(objnum)) {
continue;
}
m_NewObjNumArray.insert(std::lower_bound(m_NewObjNumArray.begin(),
m_NewObjNumArray.end(), objnum),
objnum);