They've been improving that recently:
2026-04-09 (3.53.0) - "Enhance ALTER TABLE to permit adding and removing NOT NULL and CHECK constraints"
I use my own sqlite-utils CLI/Python library to work around these limitations: https://sqlite-utils.datasette.io/en/stable/python-api.html#...
Ahh that's very nice. Unfortunately the default version of sqlite3 provided by Debian Trixie is 3.46.1.