According to the UI (Administer > Customize Data and Screens > Search Preferences) the 'Smart group cache timeout' setting allows you to specify "the number of minutes to cache smart group contacts".
According to the documentation, Job.group_rebuild "rebuilds the smart group cache" and has a recommended frequency of 'every time cron job is run'.
Why do we have and need both these approaches to keeping our smart groups up to date? Isn't one enough?!