S4 classes have standard R copy-on-write semantics, which means that updating objects does not have side effects. For the kind of semantic you want, use reference classes as described on ?ReferenceClasses
NameRef <- setRefClass("NameRef", fields=c(name="character"))
A <- setClass("A", slots=c(nameRef="NameRef"))
and then
> a = b = A(nameRef=NameRef(name="abc"))
> a@nameRef$name = "ABC"
> a@nameRef$name == b@nameRef$name
[1] TRUE
Reference behavior will surprise your R user, no matter how familiar it is in other programming environments, so use with care.