Значение, возвращаемое функцией, остается неизменным при последующих вызовах функции, потому что при каждом вызове функции создается новое локальное пространство имен для этого вызова. Все переменные, определенные внутри функции, находятся в этом локальном пространстве имен, и они существуют только во время выполнения и использования функции.
При каждом вызове функции значение, возвращаемое функцией, вычисляется заново в этом локальном пространстве имен на основе входных аргументов и любых других переменных или данных, используемых внутри функции. Поэтому значение, возвращаемое функцией, может быть разным в зависимости от входных аргументов или внутреннего состояния функции.
Неожиданное поведение функции test при повторных вызовах с одним и тем же значением аргумента по умолчанию может быть объяснено, если функция использует какое-то внутреннее состояние или переменную, которая изменяется между вызовами функции. Например, если функция test изменяет значение некоторой глобальной переменной или другого объекта, то повторный вызов функции с одним и тем же значением аргумента по умолчанию может привести к разным результатам, потому что функция уже оперирует с измененным состоянием или переменной.