Bit of an aside, but writing an email is its own art. Not many developers know how to write an email that a busy, non-technical VP will read, understand and act on in the way they intended. (Then again, neither do many managers.)
Good question, this is slightly different than lru_cache in that it persists to disk so it retrieves from the cache even when you rerun the Python interpreter.
Also it gives you a bit of flexibility as when to refresh the cache and to use or ignore function parameters. I often make a change in one 'group', db data for example, and am able to just refresh those methods that gather data from the db.