Вы можете обойти это, заменив объект (и, следовательно, связать область):
def foo(a=[]): a = list(a) a.append(5) return a
Ужасно, но он работает.