Still, it is strange that all other data types than 'AutoInc' (and 'Integer' of course) generate an error, so it's probably on their translation table but is not replaced by the right field type (it ends up in the SQL database as a 'String' field with the 'AutoInc' field type). I would call that a bug.
Not really.
In a way, you can look at SQLite being a "typeless" Database, or in Programming-speak: a weakly typed DB
SQLite allows to store alphanumeric Strings in a Integer column without complaining.
And SQLite doesn't have DataTypes for columns per se, but something called "Storage Class" (of which there are 5).
Using DataTypes you're used to from other DB-Systems (MySQL, PostGres, etc.) is accepted by SQLite and assigned an "Affinity" to a Storage-Class
like your example with ".... CHAR(255), .... VARCHAR(1000)", but internally such columns would have an Affinity for Storage Class TEXT in this example
maybe that is the thing having confused you