Couldn't we just define an AssumeValid block each N blocks, instead of adding it manually?
What is the difference from just periodically picking sufficiently confirmed blocks? Anyway those blocks have been verified by the whole network
If your suggestion is to automatically treat any block that has N blocks on top of it as assume-valid, that would be a very fundamental change in the trust model.
Right now, blocks don't become assume-valid unless they're actually valid. It's assessed by the contributors, reviewers, and maintainers of the Bitcoin Core software (assuming that's the assume-valid you're talking about), but you're already trusting that group collectively to provide you with software that correctly implements the Bitcoin protocol any time you update. It's also auditable (and audited) by anyone who wants, by running the software with assumevalid disabled and verifying history.
If instead your local node would automatically treat any block with a sufficient number of blocks on top (without actually validating it) as assume-valid, it would imply that a cabal of dishonest miners could make you accept invalid blocks. Note that while an honest majority of miners is part of Bitcoin's assumptions, this is only the case for consensus, not validity. There is no way today that even 99% of miners today could make your full node accept a block that contains a transaction which steals your coins without valid signature. In a world where sufficiently-buried blocks are considered assume-valid this does become theoretically possible.