I took a look at the FreeBSD source code for cat(1), and the relevant source lines are:
case 'b': bflag = nflag = 1; /* -b implies -n */
So this looks like a deliberate design decision; the interpretation of -b
is that it modifies the behavior of -n
, rather than -b
and -n
being two mutually exclusive alternatives.