Existem 2 versões: BSD e GNU. A versão GNU suporta -l com -p (ou pelo menos indica que você pode usá-los juntos). A página man afirma que usamos uma versão BSD editada.
Isto é da versão GNU:
NAME
netcat - GNU Netcat Manual
CONTENTS
SYNOPSIS
netcat [options] hostname port [port] ...
netcat -l -p port [options] [hostname] [port] ...
netcat -L hostname:port -p port [options] ...
===
Isto é da página man do BSD:
Name
nc - arbitrary TCP and UDP connections and listens
Synopsis
nc [-46DdhklnrStUuvzC]
[-i interval [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout]
[-X proxy_protocol] [-x proxy_address[:port]] [hostname[port[s]]
...
-l' Used to specify that nc should listen for an incoming
connection rather than initiate a connection to a remote host.
It is an error to use this option in conjunction with the -p, -s, or -z options.
Additionally, any timeouts specified with the -w
option are ignored.
Estranho mesmo. Mas parece que usamos o GNU onde a página de manual aponta para o manual original do BSD ou usamos uma versão BSD alterada e também com a página de manual errada.