For a site that's under development, worrying about the
mtime of template/tcl/proc files used in building a particular page
makes sense, but once you've deployed those things should
only change rarely as updates are pulled up from staging.
The real concern for a live site is, as Don said, the last
change of data in the pages, and acs_objects.last_modified is
the obvious place to find that info. It's more DB intensive, of
course, but joining against acs_objects and selecting
max(last_modified) for whatever rows contribute data to the
current page will give you what you want as long as you're doing
the right thing and keeping the object metadata in acs_objects
up to date.