For now this is not part of copy-on-write, and needs extra animation
This could call BKE_mask_evaluate_all_masks to simplify the code.
The deeper problem is really that it should be creating a depsgraph copy to fully evaluate the scene and everything that is uses, including masks. Hardcoding masks as a special case in BKE_animsys_evaluate_all_animation also seems weak.
Will leave it up to @Sergey Sharybin (sergey) to decide if this kind of workaround is ok, or if we want to solve this better. This is fixing one specific datablock, but there will be a bunch of other things broken too I expect.