I managed to throw together sort of a solution. Note however that this is not what I am looking for (since I'm defining a helper function, whereas I would like the symbol itself to behave like this), the question remains open. However, I thought this might be useful for others nevertheless.
The algorithm works by searching all occurrences of PlusMinus, and replaces them with Slot. The resulting expression is then converted to a Function, and this function is applied to all the tuples of Plus and Subtract up to the length of how many PlusMinus there were in the first place.
distributePlusMinus[expression_] := Module[{count, tuples, i = 0, functionBody},
count = Count[expression, PlusMinus, ∞, Heads -> True];
tuples = Tuples[{Plus, Subtract}, count];
functionBody = Replace[expression, PlusMinus :> Slot[++i], ∞, Heads -> True];
Function[Evaluate@functionBody] @@@ tuples
]
Test results:
$a\pm b:$
test1 = a ± b;
distributePlusMinus[test1]
{a + b, a - b}
$f(a\pm b):$
test2 = f[a ± b];
distributePlusMinus[test2]
{f[a + b], f[a - b]}
$a\pm f(b\pm c):$
test3 = a ± f[b ± c];
distributePlusMinus[test3]
{a + f[b + c], a + f[b - c], a - f[b + c], a - f[b - c]}
$a\pm b\pm f(c\pm d,e):$
test4 = a ± b ± f[c ± d, e];
distributePlusMinus[test4]
{a+b+f[c+d,e],a+b+f[c-d,e],a-b+f[c+d,e],a-b+f[c-d,e],a+b-f[c+d,e],a+b-f[c-d,e],a-b-f[c+d,e],a-b-f[c-d,e]}
Note: These results depend on the fact that Mathematica splits up $a\pm b\pm c$ to $(a\pm b)\pm c$. Therefore, the algorithm needs adjustments for functions that do not exhibit this behavior. Especially, entering PlusMinus[a,b,c] is left as it is, while expressions involving $\pm$ are paired up as mentioned. The whole thing therefore works for the pretty-printed notation only.
MinusPlusin Mathematica): $a\pm b\mp c$ is either $a+b-c$ or $a-b+c$). – celtschk Jun 18 '12 at 16:36