What is the intended behavior of :GetMarkerReachedSignal()?

Can someone explain to me the intended behavior of :GetMarkerReachedSignal()? On the documentation, (AnimationTrack | Roblox Creator Documentation), it shows that you only need to connect it once which led me to believe for my footsteps module, I would have to make sure it doesn’t connect listeners multiple times and I should only connect it to the marker signal once.

But for whatever reason, the function actually disconnects itself when the animation ends (does this have something to do with the Animate script?) I tested to check if the listeners would pile up but it actually doesn’t, there’s only one being fired and it’s the one being connected after AnimationPlayed runs.

For context, I modified all the running animations (run, runBack, essentially the strafing ones) to include the footstep marker.

local function CharacterAdded(character)
      local humanoid = character:WaitForChild("Humanoid")
      local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
      local animator = humanoid:WaitForChild("Animator")

      local footstepSounds = SoundService.Footsteps.Wood:Clone()
      footstepSounds.Parent = humanoidRootPart
      footstepSounds = footstepSounds:GetChildren()

      -- See comment below. Old: Keep track of connected marker reached signals so that we don't end up piling listeners.
      -- local connectedInstanceIds = {}

            -- For some reason, we don't need to check if it's connected before becuase the :GetMarkerReachedSignal()
            -- event is being disconnected once the animation ends.
            local animMovementType = animationTrack.Name:lower():find("run")
            if connectedInstanceIds[animationTrack.Animation.AnimationId] or not animMovementType then return end -- Not walk or run animation instance
            connectedInstanceIds[animationTrack.Animation.AnimationId] = true

            local lastPulledFootstep
                  local pulledFootstep
                  repeat pulledFootstep = footstepSounds[Rdm:NextInteger(1, #footstepSounds)]
                  until lastPulledFootstep ~= pulledFootstep