CRCs as used in SQLite are not intended to detect data corruption due to bit rot, and are certainly not ECCs.
Sure, the benefits to the incomplete write use case are limited, but there's basically no reason to ever use a fletcher these days.
It's also worth mentioning that the VFS checksums are explicitly documented as guarding against storage device bitrot and use the same fletcher algorithm.
Not all frames in the WAL are important. Sure, recovery may be impossible in some cases, but not all checksum failures are impossible to recover from.
Which failures are possible to recover from?
First, force a re-read of the corrupted page from disk. A significant fraction of data corruption occurs while it is being moved between storage and memory due to weak error detection in that part of the system. A clean read the second time would indicate this is what happened.
Second, do a brute-force search for single or double bit flips. This involves systematically flipping every bit in the corrupted page, recomputing the checksum, and seeing if corruption is detected.
This is just basically how a WAL works, if you have an inconsistent state the transaction is rolled back - at that point you need to redo your work.