unsigned -> size_t.
It is better to write a comment about the number. (The offset in .dynsym for a symbol.)
You want to update this comment (it no longer reserve strings.)
Can you describe the background why we have HashIt? Particularly, about the fact that we do uniquify strings only for local symbols and why.