When the original tiered hook was created, I believe (but am not certain) that any checkpoint call did a flush_tier as well. At least, that was the intention. At some point, that has been lost. In current code, although a replacement function for checkpoint is coded, it is never actually set as a replacement hook.
"Fixing" that exposed a lot of failed tests (see the original commit for WT-10971), and there are several failure conditions. Addressing this ticket probably involves fixing several bugs in the tiered storage implementation, or intentionally skipping some/all of the failing tests.