One reason OTA is not popular for the manufacturers is size, that's true. But unless they are lazy and have a good data plan with the cell provider they do binary patching. It's more work to test and verify but not rocket science.
But if you want to make sure the diff packages is as small as possible, the compiled (binary) files should be as similar as possible. Which may not be true for many reasons. But for the application itself this may not be a considerable issue.
Maps is the culprit here. I'd guess 90% of the 32G update is related to maps. This is kinda easy to check if you look at the created USB stick (which I don't have handy right now. I got myself curious now). Updates of the maps may not be done OTA until they are needed by the user which for a lot of the maps are "never" and saves a lot of bits to send. You may never find yourself driving in Spain if you live in Norway, alas you don't really need an updated map for southern Europe. Probably neither eastern nor middle aswell.
OTA should provide the possibilites to update software alot more often than having to drive to the shop or download a USB image, but because it's a lot of work making sure you don't brick the car they will do it as few times as possible. The platform we use do not update parts of the car that would make it undriveable, but the users would not really differ between black screens and seemingly nothing happening and a car that can only drive on a flatbed. They would be annoyed.
Quick fixes of small parts should be easy to send OTA, but if you are too relaxed and do this too often you will end up with hybris and black screens. This happens to all software companies.