It might be too late to change this but I really think Addressable should store uint or similar value type as the unique identifier, instead of string.
There are many scenario where you would need to maintain a set of loaded assets in a Dictionary (or similarly hash table), and string is not a great key, both in terms of speed and memory: so we end up coming up with an additional uint that maps to each asset, find ways to store them on each asset, and then use them as key after load.
Note that you can still keep all these addresses as string for convenience, I am just saying internally, it should probably be a uint, and it should give us a way to read it.
My suggestion would be to implement them like an auto-increment field in a DB.