Ah, okay, I see -- in my case it wouldn't matter much. The items that I've got are pooled elsewhere, meaning that they are generated in an order that I can't control, and are in RAM both as a managed entity and as unmanaged code attached to them via interop. It's a bunch of objects, but they never get destroyed until program termination. They are held in their own list, separately, and "pulled in and out of the list" (though that's not quite true, that's the effect) as needed.
Basically every time a shot of type X is fired, it just grabs the first unused shot of type X from the shot type X pool, puts it where it is supposed to be, then uses it for a while. Later it hides it when the shot dies, and later something else uses it.
These are the objects being used in the swizzle list: I'm needing to keep track of these pooled objects in a different way while they are in use, then when they're not in use I want to efficiently forget about them. All of the shots are allocated prior to the game even getting past the main menu, so all the allocs are long done before the swizzle list even gets any data (because nothing is put in there until a shot is actually fired).