ALTER above fails with
It's not that surprising that it fails in general – after all, a self-referencing column hardly makes sense – but that it fails with ER_FK_NO_INDEX_PARENT although clearly there is an index.
With explicit ALGORITHM=COPY it succeeds (only producing a warning about an invalid FK in the error log).
Reproducible on 10.2-10.6, including older ones, as well as MySQL 5.7 and 8.0. I didn't check earlier versions.