Any time you extract an archive with subdirectories, the subdirectories are created with a fixed mask of 700 instead of correctly following umask. Meanwhile, files do so.
This is bad for many reasons but creates situations where you cannot clean up unpacked archives if the process unpacking them is not the same user as the process cleaning it up later.
I am actually really surprised nobody else has run into this one, though I found many confused people writing wrapper scripts as workarounds.
The offending line is around line 510 in FileDir.cpp:
https://github.com/jinfeihan57/p7zip/blob/295dac87f657de12f6165cb9d81404e079651a50/CPP/Windows/FileDir.cpp#L510
This should use umask, not a hard-coded value.
I would submit a patch but I hate to admit, I haven't used Sourceforge in decades. I will cross-post to bug trackers on my current distros.
This bug was reported 13 years ago so I'm not holding my breath: https://sourceforge.net/p/p7zip/bugs/87/