The returned code should be reliable. This is a test with the latest version:
130606 11:40:43 innobackupex: Connection to database server closed
130606 11:40:43 innobackupex: completed OK!
root@vagrant-debian-squeeze-64:/home/vagrant# echo $?
0
I think that the best way to debug this is to log the output of innobackupex to a file and then check it after a failed backup report. You can paste here the log if you need help.