Forum Discussion
You don't mention whether this is Standard or Pro (I'm guessing Pro since you mention fast preserve), but Fast Preserve is meant to reduce compile time when you reuse the root partition, not when you change it. The compilation has to start from scratch if you change the root. The idea is that multiple projects may use the same root partition, so you can save time when you make changes only to internal partitions. You also don't mention floorplanning with Logic Lock regions, which is required to use the feature.
https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an899.pdf
As for regular block-based compilation, it's not really meant as a compile time reducer. It's meant to help optimize a design and close timing. The time it takes to analyze a post-fit design partition can sometimes negate the overall compilation time savings.