SQLite happily stores the text 'garbage' in a column typed INTEGER (evanhahn.com)
It's not just numbers pretending to be text. SQLite also accepts a column declared with a type it's never heard of, like DATETIME, JSON, or a typo such as BLOBB, no questions asked. Evan Hahn's fix is one word: STRICT.
In the thread, an engineer traced a real data-corruption bug back to exactly this looseness: a UUID silently turned into the wrong number, caught only after rebuilding the table under STRICT.