Eu dei uma olhada no código-fonte do FreeBSD para cat (1) , e o linhas de origem relevantes são:
case 'b':
bflag = nflag = 1; /* -b implies -n */
Então, isso parece uma decisão deliberada de design; a interpretação de -b é que ela modifica o comportamento de -n , em vez de -b e -n sendo duas alternativas mutuamente exclusivas.