I don't think we should add boundary conditions -- compound clouds will flow off the edge of the simulated area, for example, so we shouldn't bother bounding them there; and microbes that swim through compound clouds will have to absorb compounds, so we probably shouldn't set boundary conditions that cause the flow to go around the microbes. Also, if we add boundary conditions for moving objects, we'd have to recalculate the curl field every frame, and that's expensive
I think, aesthetically, we might want the noise to be in a higher octave. From what I was imagining when I suggested curl noise, I thought the diffusion of a cloud could look like dozens of thin, twisty wisps of compound streaming out from the center, rather than one large blob streaming along. You'd need to go 2 or 3 octaves up for that kind of behaviour, but if we just go up one octave (like, double noise resolution) we might get something sort-of in the middle, where a cloud of compound splits along several nearby trails that still kinda stick together for ease of gameplay (if you want to keep the sticking-together behaviour), instead of one blob following one path.
Though that's just my preconception, and this looks really cool, and would make for some very interesting gameplay.
Here's another idea for an optimization: instead of using tons of points for a cloud, use a couple control points streaming along, and we can try using the ogre particle system (or hack together our own extension) to generate particles which move around those control points. If those particles move in twisty, random-ish paths, all the better, it could increase the apparent noisiness of the cloud's motion much more cheaply than having orders of magnitude more points in each cloud.
And an idea for your prototypes: instead of having lots of points floating around to show the flow, maybe do something like what tjwhale did upthread, use fixed lines. And if you don't add anything that changes the curl field every frame, then you can also make all those lines stay fixed the entire time it's running. Lets you see flow direction, but reduces calculations so it's easier to see how fast the actual compound-cloud computations are.
It looks really awesome, by the way!