SteamPipe breaks all bits of content up into ~1MiB chunks, and then fetches those chunks. As long as you align your packfiles to 1MB boundaries, and keep your content sorted, only new chunks will be downloaded. Unfortunately, a lot of developers don't follow these guidelines for a number of reasons, and basically generate a whole new set of chunks with every update.
This includes a game I work on, because it's built in a version of Unreal where we do not want to drastically change the packfile format and modify the build process to handle this case.