> what if instance variables are passed as parameters to a static member function?
What if the static value was loaded from a file, uplinked to a satellite, downloaded by a .NET application server and sent through a
SOAP message to a process that called that static method? Tongue-in-cheek of course but the point is you do not have a reference to a static value; you have a parameter whose argument may have any number of additional references.
Here's a less elaborate example. You cannot access private instance variables from outside the declaring class. Is it bending the rule to return a reference to it?
private
String secret;
public String getSecret() { return secret; } // Bending rule? No.