Ah, been slow going for a couple of weeks I'm sorry to say. I keep getting caught up by stupid bugs. This time, it was an out-of-bounds error that turned out to be caused by some debug code I had put in and forgotten about.
In positive news, a change to the way the game decides which cells to calculate has increased the range it looks at while simultaneously bringing a framerate improvement. The change was actually suggested by someone in the comments to Gamasutra article I wrote about cellular automation; specifically, not to calculate every cell around the focus, but just those in a checkerboard pattern around it. Reverse polarity of the checkerboard every turn. Calculating fewer cells means I can calculate a further range, but the result isn't a noticeable decrease in fluid flow speed because I was already ignoring cells after they flowed one space until the next frame anyway, so as to prevent moving objects from teleporting. I think even now fluids might be flowing a bit too quickly, so I might ease up on spending so many cycles on calculating. Having a better frame rate means I can put in more gameplay features and/or graphic effects, so it's a very good thing.