Rsync syncs only differing blocks of data (not whole files) by default - it's pretty much the reason it is so popular.
There are a lot of ways to lose that though. No rsync able to run and calculate block checksums on the other machine -> no block syncing. Change a byte in a file in an encrypted volume -> it might copy-on-write and make a wholly new encrypted "file" with everything different in the final encrypted data. Etc, it depends on a bunch of stuff interacting in ways that they might have legitimate reasons to not support, particularly with security/privacy sensitive stuff.
Not sure what you're encountering, but if it's important to you there are a few ways to troubleshoot it. It might be possible to get it working.
By default if rsync sees any difference in metadata (timestamps), it just copies over the file fresh - first to a temporary file and then renames over the original. To do an in-place update you'd need to specify an arg for that. And even then, it needs to do a full read of both files to compare, so all it saves on is bandwidth.