Very nice explanation. Could serve as a basic tutorial for effects in general, or at least a good example, I'd say
The reason it doesn't lag is indeed the huge difference between particles and sprites that Refractor makes. When I worked on adding long and fancy smoke columns to destroyed vehicles (wrecks TTL was something about 60-120 sec), I also encountered that problem. I wanted to avoid the "smoke puff"-effect and thus had a pretty high emitter rate. But as this effect had to be attached directly to the Wreck object (which I had to transform from simpleobject to Bundle obviously), this also caused the problem that the effect interestingly stays active all the time. So when a vehicle spawns, the effect also gets started right away, it's just the LodSelector that makes it invisible. But for some reason Refractor is unable to "block" this invisible effect and calculates the smoke all the time in the background...So as soon as there are many objects and a high emitter rate I quickly reached the "particle treshold of death", meaning almost instant ultralag after the vehicles spawn or CTD. Reducing the emitter rate I approached the level and as soon as I was on the "good" side, the problems immediatly stopped (despite a slightly higher GPU perfomance drain, obviously).
I don't think it's the SizeoverTime or RGBAoverTime stuff that causes much problems, these should be very easy to handle, even by ancient BF42. I think it simply is the sheer amount of particles and thus individual elements that Refractor can't handle and thus goes boom... And as SpriteParticles are basically "ultra-light"-particles that have far less properties and values each there can be used more of them "safely".