At what level do you want to forbid to run SELECT COUNT(*)? if a user
can connect to the DB and run queries on the table [s]he can run the query
directly, right?

If records are deleted say daily (or on some regular basis), then SELECT COUNT(*) is nearly useless.
Of course the secured backup (csv)  before processing row.destroySelf is necessary. Try to imagine government is offending you for example... :(
 

> *I just wonder if there is a way to (re)set generators to the initial value
> (1).

  In general, there is no way. The only way to reset a generator is to create a new generator.

As I am on the Firebird, I can see only dropTable, createTable methods in the:

http://www.sqlobject.org/sqlobject/firebird/firebirdconnection.py.html

There is not particular method to create new generator.

Regards

Petr