Should I make a method that generates said hierarchy when I need it, or there is a way to ‘cache’ it and clone on demand?
I see that it’s easy to do with UXML hierarchies, but I couldn’t figure out the equivalent for C# created ones
There is no such clone feature. This is exactly what UXML was made for - cloning. The only C# alternative is indeed, as you said, a function that generates a hierarchy.