Is there a reason why the static files are being requested again when they should already be cached for 7 days on the local machine? The 2nd hit to the page should get this static file from the local machine without requesting it from the server and receiving a 304 code response.
Otherwise you understanding would have been correct. Just send vary headers for text content that would otherwise be gzipped and it should start working.
Apache wouldn’t normally send the vary header unless it was actually gzipping the content so it’s worth going through your configs to make sure the mime types for gzip are set up correctly and that you aren’t using mod_headers to force the Vary header.