FWUMP, and not bang. Gif is low res, but shows the thing at 15 fps. initial fireball + expansion all takes place in .2 seconds or less.
As for contained, I can't have smoke going 3,000 mph across the map. Else the sprites would get away from the "cluster" and look fake and out of place. So they have to be contained to a certain size else it just looks unrealistic at the most. This is for a grenade launcher explosion, so its not gonna be monstrous like the planes crashing into the twin towers.
With textures in particles, the more of a round shape they have, the less chance some one has to spot that the texture is repeating, if there is an odd edge sticking off the eye can easily pick it up and match that all the textures are repeating. So its easier that way, every developer makes their particles round for the most part, I use UV distortion on mine to add waviness to them in game.
As for structure and the amount of variance.. well there isn't much you can do for that. Particles just say give me a max X Y and Z. And that's as far as you can go with it. The computer then chooses random numbers between the max and min.
The only thing you really have to control it:
To counter variance problems, you can often make a sprite sheet to choose between random sprites, but even then you could pick out the ones that are the same. Thats just how it is.