Max Vernon shows us how checkpointing works when your database is in the simple recovery model:
Even though the transaction has been rolled back, the log records will not be cleared until a checkpoint occurs. An automatic checkpoint could be triggered by other ongoing transactions being written to the log, or a manual
CHECKPOINTstatement could be executed. However, for a database that is not seeing frequent transactions, the log may stay nearly full for an extended period of time. This scenario might be seen often during development where there are a very limited number of transactions being generated.
Read the whole thing. Just because you’re in simple recovery mode doesn’t mean the transaction log becomes any less useful.