So it sounds like there were two reasons: type instability, which was fixed, and “comparing pointers is faster than checking equality”
The implementation re-uses the same object for all Symbols with the same name, so comparison tends to be efficient (it can just compare pointers).
I normally consider interning an implementation detail that shouldn’t be relevant to users. Is that wrong here, or is it possible to automatically convert == into === for Symbols at compile time?