It appears there is no public API for "pushing the truth", despite
Sync Services documentation mentioning this particular mode. Or am I
missing something?
There isn't.
So how does one push the truth, i.e. replace the entire truth
database with records from the client e.g. as if restoring from a
backup? How does iSync and other tools do this?
The method that pushes the truth is private. You can, however, do a
slow sync, which is almost the same as pushing the truth. The only
difference between the two is the pull phase is skipped during push-
the-truth syncs, whereas it's not on slow syncs.