Thanks for the response - I guess I'd assumed that a class that extends a dynamic class must be dynamic. Obviously I'm a flash neophyte.
After some slightly more rigorous testing I think the problem I'm seeing is attributable to the gc being invoked during unload. Setting DisplayObjectLoader.defaultAutoForceGC, explicitly invoking unloadAndStop(false) for _loader, and some reordering how we invoke the LoaderMax calls (I don't think these are relevant, but can't rule them out) seem to fix us up. I'll probably hold off upgrading unless it's really necessary, but if I do I'll report back any differences.
Thanks again for the help!