This TidBITS article brings back memories for old geeks:
TidBITS Problem Solving: Tales from the Sausage Factory: Why Those Big Downloads for Simple Updates?
...And then at the end you have whole-app updaters such as Sparkle, which is what we use (see "Sparkle Improves Application Update Experience," 2007-08-20). The Mac developer community seems to have more or less standardized around Sparkle these days. I'm amazed at how often I open and app and find that it's using Sparkle to keep itself up to date. Aside from the programs where I implemented it myself, I don't recall the last time I saw an application using a more granular updater. Even Apple seems to publish monster updates for their apps. They use more granular packages for updates to the OS itself, but on the other hand there seem to be a lot of problems caused by these which are fixed by re-applying the big combo updaters they put out...
In the old days updaters were pretty small, typically diffs. Those days are gone -- the cost of bandwidth is less than the cost of the problems that arise with anything less than a whole-app update.
In my real job we still use an old data update solution that's basically a diff-type update. Nowadays whole-data is the only way to go.