int a=-1;
printf("%d\n",a+(int)(1==1));

の実行結果が信頼できる処理系に限っても
常に0になると楽観するプログラマは恐らく
現在も将来も居ないだろうから
素直に
printf( "%d\n",a+(1==1)?1:0);
とコードしようや。
たとえ仕様書で定められたとしても
その仕様書を処理系を開発する人々が守るかどうかは
別問題だと思うぞ。