If you check blk_mq_update_queue_map(), for set->ops->map_queues unset we call blk_mq_map_queues() - I am just wondering what does the equivalent to blk_mq_map_queues() for you in these other modes.
I am concerned that it is not proper that we have a set->ops->map_queues method, but it does nothing in some scenarios.