たしかに不正な引数を渡したりすると-1でエラーになるようですが(AIX,HP,Solaris,Linuxで確認)、
本当にエラーにならないという確証がmanを見ても得られなかったため
質問するに至りました。sigprocmask()でエラーがほとんどないとしたら
たとえばsigaction()について以下のようなコーディングは冗長と言えるでしょうか?
struct sigaction sa;
int rc;
sa.sa_handler = SignalHandler;
rc = sigaction(SIGINT, NULL, old_sa);
if(rc == SIG_ERR){
 // error log;
}else if(old_sa.sa_handler == SIG_DFL){
rc = sigaction(SIGINT, &sa, NULL);
 if(rc == SIG_ERR){
  // error log;
 }
}