Does cache-tag / cache context bubbling up mean core doesn't actually individually cache separate page components?
The bubbling is for the cache_tags and contexts, so it's related to when the cache on the parent item clears.  The parent item will clear based on the children, as the parent has all the child cache tags.  It doesn't mean that the children don't cache.  They do, but they won't refresh at the same rate as the parent.  The parent will potentially clear more often and then rebuild from the cached components.