I agree set_is_optimized() is a very intuitive user interface but I appreciate it was hard to maintain for each attribute. Do we really need a different optimization for each attribute?
yes. You don't necessarily want CG changing, for example, the mass or radius of your particle that you are trying to optimize.