Команда x = Symbol('x') хранит Sympy Symbol('x') в переменной Python x. Выражение Sympy f, которое вы создаете впоследствии, содержит Symbol('x'), а не переменную Python x.
Когда вы переназначаете x = 0, переменная Python x устанавливается на ноль и больше не связана с Symbol('x'). Это не влияет на выражение Sympy, которое по-прежнему содержит Symbol('x').