Under the hood, on-board Windows Backup consists of multiple different technologies involved: One creates a structure of ZIP files containing file level(?) backups, the other one provides volume level backups using WBADMIN. Depending on the used GUI etc. to configure backup, things can be combined as well. I'm talking about the ZIP-based component only here! Additionally, the separate file history is not of interest as well.
So, if the ZIP part recognized changed files, does it store block-wise deltas in its ZIPs or always the entire changed file?
Because of the ZIP-container, in theory it could store deltas by simply reading the former version of the backed up file and comparing it with the current version to be backed up. Obviously, the old data needs to be accessible for restores anyway and to compare the files, each simply needs to be read from first to last byte. So there's not even arbitrary random access or alike necessary. WBADMIN pretty much does exactly that: Mounting a possibly available VHDX and simply comparing old file WITHIN the VHDX and new file to only write their block-level differences back into the file within the VHDX.
I have some users of the ZIP-component with some pretty large and often changed files, like mail databases. Their file based backup is pretty large, means the ZIP files are pretty large in the end. OTOH, the storage used for snapshots for WBADMIN is pretty low, which means that actual differences between backups are pretty low on the block level. So I guess ZIPs contain complete files always, though only the changed ones based on the currently created backup set.
Available docs for SDCLT.exe are pretty bad and I couldn't find anywhere this concrete fact being discussed. Instead, articles often mixup ZIP vs. images maintained by WBADMIN.
Thanks!