objective.expression and constraint.expression are read-only now.

Also, the cplex_interface generates constraint.expression and objective.expression from the underlying solver instance now (like the glpk_interface).
expression.free_symbols scales with f(x) ~ x^gamma -> expression.atom(sympy.Symbol) scales linearly