Whats the difference between REPLACE INTO ... SET and UPDATE

Both

REPLACE INTO table
    SET field1=value1[, ..., fieldN=valueN]
    WHERE id = <id>

seems same as

UPDATE table SET col1 = newval1 [, ...] WHERE where_condition

(apart from where only being id=…)

… so wondering why the new syntax? Is it because REPLACE INTO can update fields, vs UPDATE which can only update attributes in place?

Suppose it goes without saying that the Fields NOT been ‘replaced’ need to have storage enabled, so then can be reinserted into the index/table.

Can you still update attributes with REPLACE INTO?

yes
you could replace either attribute or full-text field as that replace fetches whole document - attributes and full-text from the docstore then updates the part user provided and replaces the document back. That made for easy use of daemon along with buddy for users.

And that operation should fail if the docstore is missed I think.

For missed explanation in the documentation you could create PR at Github or push the edit button in the manual.

Updated the docs Manticore Search Manual: Data creation and modification > Updating documents > REPLACE vs UPDATE