intの変数a,b,c,dがあって、どれか一つでも0以外だったら、というコードは
普通は
if (a || b || c || d) {...}
のように書くと思いますが、
これを
if (a | b | c | d) {...}
と書くのは、邪道ですか?

ショートサーキットのルールとコンパイラの最適化を見越すと
条件が変数の読み込みだけであるなら、
大差ないとはいえ、一応後者の方が速そうですが。