Ehhh, "if" is a bit of a specialized case. In general programs don't map fully to true/false, just leave it as "error code".
It's not that we should use any other interpretation, it's that that interpretation is only mostly true. Don't overgeneralize lest you introduce mistakes.
int main(int argc, char *argv[]) { return 1; }