Thanks for thinking this out to its full breadth. The answer is much better than the question.
Also for what this has to say about what is not a feature (names that are str
sub-classes, and preservation of identity). I can see potential optimisations those would make difficult.