> Isn't there still a way to express at least one Illegal string in ArchivedString?
There may be good reasons (I don't know any) why it wasn't done like this, but from a high-level it looks possible to me too yes.