I sure don't know of any where non-zero means success. As I mentioned earlier, various values of codes can tell you why something failed: 1: file not found, 2: read only, 3: divide by zero, etc.

But I've never needed this kind of breakdown after a success ... 1: it worked because the file was found, 2: it worked because the file was read-write, 3: good work you didn't divide by zero So zero is used for success because it is a single value and that is all you need, non-zero is because it is multivalued and is needed.