That would make that the only place in which Python has referential transparency, though. It may be a quirky side-effect of consistency, but it is consistent.
Referential transparency is a property of functions, not data (unless you're in a lambda mood and treat them as functions of zero arguments, but in that case you're not in Python so it's not relevant here). Even a function to "concatenate two strings" could be passed an object that overloads the addition operator to cause arbitrary modifications:
>>> class Evil(object):
def __init__(self):
self.evil = 1
def __add__(self, other):
result = ("%s" % self.evil) + other
self.evil += 1
return result
>>> def referentially_transparent_concat(a, b):
return a + b
>>> e = Evil()
>>> print referentially_transparent_concat(e, "hi")
1hi
>>> print referentially_transparent_concat(e, "hi")
2hi
You can program in a referentially-transparent style with Python, but you'll have to do it by adding your own restrictions to the code you write. Python will not help you with that.