Not sure what version of IIS you have but you may be able to use the dynamic compression module to compress the output of your AssetController.
How did you find that the bundle is requested on each page load? Are you using a hard refresh that would force re-retrieval of any cached resources?
What are the headers for the response coming out of your asset controller? You should have CacheControl:max-age set to 365 days worth of seconds, if you followed the example verbatim. If you aren't setting max age, you need to.
Odds are if you were previously using the normal Render method, you were rendering to the file system and the result was served as static content using any policy you have configured on the server. You will need to make sure the Asset controller uses a similar policy.