This was the one thing I didn't understand. Why is using a global Symbol registry any better than just using string properties like usual?
s1 = Symbol("cat");
s2 = Symbol.for("cat");
s3 = Symbol.for("cat");
s1 == s2; // false
s2 == s3; // true
You can still have Symbols outside the registry.