Identified by its content how?
I guess built-in things get fixed names / hashes, and the hashes of everything else follow from that.
They need a mapping from content/hashes to human-friendly names, obviously. Not sure if they gained anything here, but they seem to think so, so might be worth checking this out.
Bugfixing and identity matter.
It's actually quite a clever idea.
This does appear to pose a small issue for types, since isomorphic types are identical regardless of their names, but I believe they have a way to attach a unique id to enforce a distinction.