Actually, yeah, the function is necessary.  Otherwise, the xmodule field gets a separate copy of problem_choices than the xmodule, and it's not possible for me to change the xmodule field's problem_choices.

Pass-by-value vs. pass-by-reference is hard.