When using msdeploy with -useChecksum and -whatif parameters the process uploads the entire package (or almost the entire package) to the server. However, the process correctly determines what changes are to be deployed.
When using msdeploy with only -useChecksum parameter the process uploads only the changes, which is a fraction of the package size.
This is noticeable when using msdeploy over a slow network connection when the delay in preview is significant.
I am using Web deploy 3.5 both on client and server machine.