Subject touching a deleted record
Author Nick Upson
this was posted recently

When Firebird deletes a record, it doesn't remove the record from
the database. Instead, it creates a new version of the record,
without data, marked as deleted. When the transaction that did
the delete commits, and all concurrent transactions exit, the next
transaction that touches the record removes the deleted stub and
all earlier versions of the record.

which I, hopefully, understand.

I don't know is what counts as 'touching' the record,

select count(*) touches all records but if my only access into the
table is via an index and I never sweep, when does the deleted stub
get removed?

using 1.5.3 if it matters