Compute()is designed to do. The purpose of
Compute()is to produce the constant object that the formula parses to, if it is constant, and a formula otherwise. If you always want a formula, the correct thing to use is
Compute()(as you point out you can do).
Perhaps you can override both the Formula and the List default list-checker?