Joe's suggestion doesn't address the problem which is outdated information in the navigation tree on page A because of a change to page B.
Using his suggestion, the included file is included at the time page A is built. If page B is changed, the include on page A (the navigation tree) is not updated, it remains as it was when page A was built. With SSI, the navigation tree is included at the time the page is served, which means the included information is up to date (that is, accurate). On the other hand, if the entire site was built when any file was changed, then Joe's suggestion might work. It might depend on the ordering of processing of page A and page B. Our current solution (with or without SSI) would work for either order because of how the code is structured. The fundamental issue is that a change to page B may cause content on an arbitrary number of other pages to be updated. As far as I can tell, that must be done either through always doing a site build, or using SSI. I would prefer always building the site, personally.