Mission ending with MAV_CMD_NAV_LAND

Hello,
I’m investigation one issue. I have a mission ending with MAV_CMD_NAV_LAND mission item. I also read MISSION_STATE field from MISSION_CURRENT message to know what mission state of mission. The problem after copter landed is disarmed but mission is still marked as active. What’s more current mission item is again set to 1 (take off item).

I’ve found a code responsible for that and it seems that it works as expected:

            retval = copter.ap.land_complete && (motors->get_spool_state() == AP_Motors::SpoolState::GROUND_IDLE);
            if (retval && !mission.continue_after_land_check_for_takeoff() && copter.motors->armed()) {
                /*
                  we want to stop mission processing on land
                  completion. Disarm now, then return false. This
                  leaves mission state machine in the current NAV_LAND
                  mission item. After disarming the mission will reset
                */
                copter.arming.disarm(AP_Arming::Method::LANDED);
                retval = false;
            }

Can anybody explain this?