Yeah I don't like their habit of signals-with-references either. However in this case I can see it as a way to give StorageFactory control over the object handle allocation without making the plugin interface too big. Kind of a least-worst solution.

I like your idea but I'm not sure it would really be shared between plugins that were compiled and loaded separately. I think they might be duplicating the base class in each plugin. It's worth testing :) I assume you mean the static method would also use a static variable.