More high-level observations on low-level operations: We already sort-of have an existing field qualifier for atomic: "volatile" ! It is already the case that e.g. volatile long is atomic while unadorned long is not. But atomics without CAS make us sad, so we're adding them. Also, by analogy, Atomic*FieldUpdaters must refer to a volatile variable. It seems not unreasonable to require that VarHandles also refer to a volatile field.
If a field is declared volatile boolean; then the VM should ensure not only that it can be reasonably efficiently updated using ordinary read/write as is already the case but also that it can be reasonably efficiently CAS'ed, and that may mean giving it 32 bits instead of 8 on some platforms. But it would be a VM implementation detail. It would be even nicer if the field qualifier was literally "atomic", but I don't think that is going to happen. The best we can hope for is: "volatile" is how you spell "atomic" in Java.
