The Google Play Store uses a technique called delta patching to calculate the diff server side and avoid transferring parts of the app that haven’t changed since your original installation.
This is understandably not perfect because they want to avoid load on their servers and also the extra processing on your device to “unpack” it. So what you have is a happy medium between sending the entire app again and sending strictly the diff.