Поведение такое же внутри или снаружи обратного вызова.
mapвозвращает новый список на основе старого списка. returnвнутри функции отображения решает, что элемент ( cacheв этом случае) заменяется на. В случаях, когда ничего явно не используется с помощью return, mapвместо этого имплицитно возвращается.
И нет, returnне влияет на оставшиеся итерации map. Опять же, он просто решает, что такое новое значение элемента.