OK, so you have a different IRIX version that Jan. I could replicate the problem there.
:(
I'm running IRIX 6.5.29 (IRIX64):
$ cat test.sh
#!/bin/sh
set -e
testf () {
test -f /nonexistent || return 1
return 0
}
if testf; then
exit 1
fi
exit 0
$ ./test.sh ; echo $?
0
... if I'm understanding correctly then that should be a "1", yes?
P.S. Please see my other mail about "fetch" apparently not being
called. Very strange...