If an user changes the number of hops of his/her Tor client to some non-standard number (i.e. !=3), what nodes and who else in the circuit would know how many hops this client is using?.
I am not sure on this, so someone who knows should confirm or correct, but as I understand, only the client knows, unless you use just a single hop, in which case everybody knows.
It goes like this: The guard relay can see the difference between an incoming connection from a client vs. from another relay. (<--This is this thing I'm not 100% on.) The exit relay obviously knows the difference between an outgoing connection to a final destination vs. to another relay. If the guard relay is the same as the exit relay, then it knows that the number of hops is one.