I've experimented a bit, and now have the following proposed changes:
--no-default-data will yield an empty environment: no reports, milestones, components, permission groups, etc. This gives the user two scripting options: Start with no data and add (e.g. trac-admin milestone add ..), or start with sample data and delete what's unwanted.
Add method DatabaseManager.insert_default_data, which is called from Environment.create.
The database version entries in the system tables are always inserted when the database is initialized, set by DatabaseManager.init_db (this is a minor API change).