An immutable solution might look like the following

```Python
elements = []
elements.append(vsource('V1', '1', '0','12'))
elements.append(resistor('R1', '1', '2','1000'))
elements.append(resistor('R2', '2', '0','2000'))
elements.append(capacitor('C1', '2', '0','0.0002'))

cir = Circuit(*elements)

solution = solve(cir)
```

Can you create the elements individually and then create a circuit out of many of them at the end. 

Immutability is sometimes slow.  There are often ways around it.  Often by working your way around it you make your code cleaner.  In general immutability results in objects that are much easier to work with and automatically reason about.  Much of the power of SymPy depends on the immutable assumption.