Perhaps I am missing something but this looks inconsistent to me, i.e. skip_validations should bypass the guardian check either in both cases or in none of them.
In any case, I fixed this because I needed it myself (to have an importer create posts in private categories). Here is what I did:
Ho appena riscontrato questo bug. Molto frustrante che tu l’abbia corretto 6 anni fa e abbia emesso una pull request che alla fine non è stata accettata.