Because the hash keys still need to be values. If they were pointers, two pointers could be different, but refer to equal objects.