ServerName.valueOf is missing docs about the safety of using == vs .equals on returned members.
For clarity, we should specify that users are expected to use .equals even though we may return shared immutable instances. The .equals method short circuits on object equality, so the cost difference in the positive case is 1 function call.
Current behavior is to return a new instance on each call (0.96, 0.98, branch-1, master). So presumably any current users are either doing this or they have a bug.