The reason portsnap is more efficient lies in how portsnap and CVSup
determine which files need to be updated. The ports tree contains
roughly 71000 files, and the first thing the CVSup client does is list
all of these files and send that list to the server.
In contrast, portsnap has an index file -- containing, roughly speaking,
that same list -- and the portsnap client merely sends the sha256 hash of
this index file to the server, which responds with either "I recognize
that index -- here's a patch which will turn it into the latest index"
or "I don't recognize that -- here's the new index".