Any implementation of method weakCompareAndSetPlain must intrinsically be bitwise atomic and maintain coherence wrt its variable, which fits the definition of Opaque (vs Plain). (The misnaming is due to pre-VarHandle conventions). At a minimum, the specs should be updated to document this. But it would be more uniform to introduce weakCompareAndSetOpaque and then explain that the Plain form is equivalent. We could even deprecate Plain form, but probably not worth the disruption.