Current approach with checking for non-default value at every place where ciField::is_constant is used is error-prone.
It looks feasible to separate is_constant() and is_stable() properties for instance fields and have additional check for stable and non-default value in the code to make optimization happen.
It looks feasible to separate is_constant() and is_stable() properties for instance fields and have additional check for stable and non-default value in the code to make optimization happen.