Some possibilities:
1. The two fluids block each other from flowing as if they had run into a solid.
2. DF is updated to track multiple liquids in a given tile and the tile gets about half of each. (3 of one and 4 of the other).
3. Both tiles form a default compound, like "sludge" or somesuch.
And those would have to be coded in the RAWs as well. Very very VERY (if any) few liquid interactions in the real world do 1 (form a vertical boundary). Most will either mix (3ish*) or layer on top of each other based on density (2). 2, however, is very easy to code, as it can be implied based on the material definitions. 3is is harder, but possible as it depends on what type of material each is (a water-soluable liquid won't mix with a lipid-soluable liquid, even if both are the same density).
It's the acid/base, water/magma type reactions that are extremely difficult to code as every liquid likely interacts in some way to large numbers of every other liquid. I.e. vinegar and ammonia would both (in large quantities) turn magma into obsidian.
The trickies reactions of all are the ones that involve three or more liquids. I.e. one is a catalyst for a chemical reaction of the other two (I do not know of any that exist in pure liquid states).
*By which I mean two liquids mixing homogeonously into a "new" liquid. I.e. water and milk.
Keep in mind that I'm only talking about the default reaction, when a reaction is not explicitly defined in the RAWs. The point is to support lots of liquids without having to define hundreds or thousands of interactions in the RAWs.
There is a fourth option for default reaction that I didn't think of until later:
Swap these two tiles.
If two liquid types with no defined reaction to each other interacted, you'd end up with a pool of "mixed" liquids, but each individual tile would only contain a single type. This would also make the interaction of 2 or more liquids a snap (it would just work automatically), and it would simulate pollution pretty well.
Example (Oil=o, Water=w)
wwooo
wwooo
wwooo
wowoo
wowoo
wowoo
owowo
owowo
owowo
I doubt #2 will be easy to code. The game is not set up to handle multiple liquids in a single tile - the game would likely need a new data structure and it could get ugly (especially in regards to performance) when more than just 2 liquids interact. Could be a real CPU hog.
As for #3, the "sludge option", my assumption was that if it was the default to create sludge, most things interacting with sludge would just form more sludge. So you don't have to worry about whether things without defined reactions mix, because they'll just turn into sludge. You could always define how some material reacts with sludge, which would apply no matter what previous interaction created the sludge in the first place. Not very realistic, but easy.
Let me give a little more detail about why I'm advocating the options that I am: I'd like to see other liquids get into the game soon. Pie-in-the-sky perfection takes forever. If we can get something interesting and useful that requires 80% less effort, I'd like to see Toady go for that.
To be honest I think the default of "swap tiles" would be the best default option. You could end up with lakes that were part oil, part water, part whatever; all without doing heavy modifications to the game. Meanwhile, modders could go crazy defining every possible interaction to satisfy the desire for more detail.