I fail to see why copying mutable or immutable objects would make a
difference in whether you would use shallow (reference) or deep (value)
copy. And logic would actually demand the opposite as what you claim; since
immutable objects don't change why copy the value? In python (and Smalltalk
for that matter) all copies are shallow. The difference between python and
smalltalk is that smalltalk treats constants (such as numbers) as special
that always return the same id, no matter where and how often you use
(instantiate) it.
$0.02
-Jaap-