It gets pushed out if the metadata changes and needs to be resent. If any metadata changes then calibre sends all metadata. Trying to work out the minimal differences between the updated and current metadata would be hard and probably slower than simply resending it.