This is *really* bad terminology, and ironically, violates the way Sun officially describes the Java language semantics or pass-by-value. In the Java sense, local interfaces means that both the caller and the object being called are on the same heap, so it's just plain old Java pass-by-value (which as you mentioned, for object references you get the value (a copy) of the reference, and for primtives, you get a copy of the value of the primitive.
So, nothing is really pass-by-reference in the way that we use the term, but people use it differently, even within Sun.
Basically, it's something like this:
* When passing an object to or from a REMOTE method call, you pass a copy of the OBJECT.
* When passing an object to or from a LOCAL method call, you pass a copy of the REFERENCE.
* For primitives, it makes no difference--you're always getting a copy of the value of the primitive.