For example, new, is_empty, len etc. can probably be made constant, which can be helpful for defining other constant functions that use SmartString.
I understand that SmartString is generic, so there would need to be separate constant implementations (all of them probably look exactly the same) for each function for each of the generic types.