In general Common Lisp does not provide mechanisms to prevent user code from accessing or messing with intermals of lower level modules. An exception is the very-weak protection of the double-colon im reader syntax, compared to the public/private distintion in languages like Java.
Suppose your "What if?" question were:
What if some user executes (rotatef (fdefinition 'car) (fdefinition 'cdr))?
An implementation _might_ protect function bindings of symbols in the :common-lisp package, but the language definition does not requirethis. Your Lisp execution might be totally broken.
Now, if your favorite implementation actually conforms to the MOP, the MOP could provide effective control over slot access. You are already using a custom metaclass. The presence of the :counterp slot option could cause the slot to be represented by a custom effective-slot-definition class, and a setf slot-value-using-class (which setf slot-value is _required_ to call unless it can prove that access has not been customized beyond the standard metaclasses) can impose whatever restrictions you desire.
You'll learn a lot figuring out how to make all this work. :-)
Be aware that using specialized metaclasses and slot-definition classes may cause greatly decreased performance in slot access, This is because implementations can and do optimize slot access ("inline" in the ANS description of slot-value) and completely bypass the weighty ,achinery of slot-value-using-class only when they can prove behavior has not been customized beyond that of standard-class and standard-effective-slot-definition