Starting with the Spatialite application, can a new Geopackage file be created, or is Spatialite only capable of working with existing Geopackage files?
Thanks to @user30184 and ultimately Sandro Furieri in this post:
Creating a crystal-clear GPKG not containing any spatialite specific table is really simple.
You simply have to avoid using either spatialite CLI or spatialite GUI because both tools will always create a new DB-file specifically inteded for SpatiaLite. Anyway a third option exists, and is straighforward.
A) edit the SQL scriptd prepare by Jukka add the following statement before the very first line: SELECT load_extension('mod_spatialite');
B) now you simply have to execute from the shell: sqlite3 test.gpkg
this way you'll get an absolutely clean GPKG
So the answer in the strictest sense is no.
In place of the script mentioned in the quote above, there is a Spatialite function
gpkgCreateBaseTables that appears to initialise the requisite Geopackage metadata tables.
The following commands generate a clean GPKG (using SQLite 3.17.0 and mod_spatialite.dll 4.3.0):
C:\>sqlite3.exe SL3_Test.gpkg sqlite>SELECT load_extension('mod_spatialite'); sqlite>SELECT gpkgCreateBaseTables(); sqlite>.exit
You can create a new GeoPackage with Spatialite. All you need to do is make sure you create the required MetaData tables (and triggers to populate them).
However in most cases it will be easier to use a library or tool designed to do it, one is available in most languages.