This is in order to prepare for compatibility with the Alembic exporter. That exporter is capable of writing object transforms and object data at different (sub)frames.
The rename from created_writers to used_writers is necessary, as not all created writers will be actually used in each iteration.
Note that this is based on D7669, so this patch can't be directly applied onto the master branch.
This commit and the others in this topic offered for review are available in the temp-io-alembic-changes-up-to-D7672 branch.