Redefining structs without restart?

As I understand, for a new specialization to occur, the object type must change its “name”, that is why the renaming is a possible workaround.

Redefining a function is different, because while the types are constant, either the function recognizes that it is been called by with a new type and must specialize again, or the method is already defined. The old specialized method continues around, and that is not an issue.

The bottom line seems to be which information is needed for function specialization. If it is the type names, than the names must change.