Originally, I thought it was wise to freeze the returned factory, basically to keep factories immutable, and limit the amount unanticipated consequences. The challenge is that it makes it impossible to add static methods/properties to the factory.
There are three approaches I can see to resolving this:
If we choose either of the last two, we will have to change the factory cloning logic to perpetuate these static method/properties, which it currently does not do.
@maier49 has implemented as much of a level of freezing as we have felt safe but still workable.