The 'init_spatialite.sql' script simply creates the
metadata tables 'geometry_columns' and 'spatial_ref_sys',
inserting all the EPSG defs (SRIDs) into this latest one
table.
Metadata tables are required in order to fully support
Geometries and Spatial operators, so you have to create
(and properly feed) them each time you'll create a new
database (if you already use PostGIS you are surely
already familiar with such metadata tables).
But starting since v.2.3.0 the GUI tools 'spatialite-gui'
and 'spatialite-gis' silently create and feed the metadata
tables during the database creation phase:
so running the 'init_spatialite.sql' script as a separate
step isn't any longer required.
Quite obviously, if you try to execute this script on an
already initialized DB you'll get some error, because you
are actually attempting to re-create an already existing table,
and/or to insert duplicate primary keys into 'spatial_ref_sys'.
Hint: check your DB; if it already contains the 'geometry_columns'
and 'spatial_ref_sys' tables there is no need at all to
run the 'init_spatialite.sql' script, because any initialization
task has been already performed by the GUI tool.
bye,
Sandro