Hmm, either Im missing something or overthinking, 
This is jdoc of lookup(String):
"Retrieves the named object. See Context.lookup(Name) for details" IMHO this implies ==, I seriously can't think of any other meaning of "See" than == as return value. Only diff should be arg types.
Wrt name.toString - my bad, no excuse here.

Why this change is needed? Simple, path of Context.lookup(Name) and Context.lookup(String) is not the same, those calls dont  provide the same result. I will provide dumps tomorrow, its too late now.