NVME_TCP_DISC_PORT, 8009, should not be the default for nvme fabric connections when trsvcid is not specified.
Its allowed, the statement simply does not recommend it as a possible misuse in an environment where iWARP and TCP are deployed on the same port spaces... And, it recommends that subsystems don't listen on the 8009 by default, not anything about a host. Furthermore, usually controllers that are not passed with a default port are discovery controllers anyways.
NVME_RDMA_IP_PORT, 4420, should be used, or renamed to something more generic.
Not at all... in fact, this is really not what the spec is intending.