Well, there is at least one good reason for not allowing this retroactively:
Old users of the ioctl could have complete garbage in the field, and might send the command to a random namespace now instead of the first one. So unles we have a very good reason I think we should keep NVME_IOCTL_IO_CMD on the controller char dev deprecated and maybe eventually remove it.