The documents for the ExePackage
element state the the purpose of the Cache attribute is
Whether to cache the package. The default is "yes".
I don't understand what this does. Where is the package getting cached?
Burn caches packages and payloads so repairs don't fail because the files are missing. That's a common problem with self-extracting .exes: The user downloads the .exe but the files are extracted to a temporary directory and are deleted afterward.
Where they're cached is an implementation detail. Currently it's in a directory under app data (ProgramData for per-machine bundles) but the exact path can be redirected by the user. For example, see https://devblogs.microsoft.com/setup/how-to-relocate-the-package-cache/ and http://wixtoolset.org/development/wips/4278-allow-administrators-and-users-to-redefine-the-payload-cache-locations/.