@DoncoMarketing / @scotbaston, just wanted to fill you guys in on this a little more after looking into things and confirming my suspicions:
Using Components directly through the “Component” Element (including any Global Blocks that are moved to the new system) involves a DB query to retrieve the Component Document, which is stored as a WordPress post type. This means if you have 5 separate components, you’ve just made 5 queries to the database for each “page request.”
However, using Component exports comes with the performance benefit of only one additional database query because Cornerstone caches them internally.
Anytime a Component Document is saved, the system cache is cleared (it’s also possible to manually clear the system cache). When any Component is encountered, the cache is regenerated. This involves retrieving all the Component Documents at once, organizing the data to the minimum requirements for rendering the Elements, and caching that entire result in one place.
Subsequent visits to the site only require one database call to get every Component export. This scales very well allowing sites to store hundreds of Components without significant change in rendering performance. We have actually built out some test sites internally that literally use hundreds of Component exports, including using Components within Components within Components (you get the picture). Overall, it’s a much more performance conscious method of leveraging a design system.
Hopefully that helps to provide some more context!