I am aware that diff is not built to handle binary code. It can be left alone, but a binary diff calculation system also needs to be created. We could call it 'bindiff'. Here's how updates should work.
Let's say you have whatever-1ubuntu1, and the newest version in repos is whatever-1ubuntu2. For any single step, a binary differential should be calculated and a patch should be available. It may also be a good idea to have patches than span two iterations.
..So, to upgrade from whatever-1ubuntu1 to 2, I should only have to download whatever-1diff2.deb, not whatever-1ubuntu2.deb
All currently installed packages have .deb files on the local machine-- upon downloading a diff deb, the files should be replicated, patched, and checksummed. If the checksum matches the next version, the packages have been successfully patched, the version is set correctly, and the package is upgraded using it.
Right now, one has to download fractions of a GB right after installing to get machines up to date, and this is atrocious. And those poor people with ISP's that give them data limits of x GB in a month? What's that, everyone in the UK? I think they just might appreciate this.
"If you want to get the most out of your internet connection, you'd better use Ubuntu!"