Before definitively stating the question I would like you to take into account the documentation of python 4.7.1 <-> 4.7.2 specifically in the Important Notice .
In this they clearly establish that when the arguments are named and at the same time they are mutable, they will maintain their values between calls to the function, because the question is, then:
Why?
Why would these keep their values, if all the variables used in a function are supposed to be destroyed once the function is finished?
I came to assume that when a function with named arguments is invoked (without passing arguments to it in its clear place) these variables are declared globally, and, unless they are declared globally but are inaccessible, this is not true...