Hi,
I don't know the exact answer for sure, but here is what I think about it.
Take this example. Suppose you have a public class A and a subclass B extending A with default (package) visibility. These two clases are in a package (poorly) named package1.
You implement a method in any class of package1 that creates a reference to a class A object. You initialize this object with a new instance of class B (as
polymorphism permits it).
Somehow, a class C from another package (let's call it package2) gains a copy of that reference. You have a class C instance holding a reference to a class A object which is legal as A is declared coderanch. Indeed, the reference points to an object of class B, but it can only be treated as an instance of class A since class C is not allowed to cast that reference back to B nor can it creates another B instance because it isn't in the same package.
So, I think we can say that the reference has visibility constraint as a reference to a class B object within class C would throw a compiler error. But the class itself has no visibility constraint as the Virtual Machine allows you to hold an instance of class B outside the package thanks to inheritance.
I know this example is not as clear as one could hope, but I hope it'll help you.