Yes, functions have to be reusable arbitrarily often and perform exactly identically
This is essentially the same as this answer but it requires that subsequent calls of the function are 100% indistinguishable, even if the spec leaves some leeway in behaviour.