I think your reasoning is right - if I do something like this, I get the expected result:

```
In[1]:= Through[plus[f, g][x, y], plus]
Out[1]= Through[plus[f, g][x, y], plus]
```

I'd guess that this is issue #151. We're not doing anything in `Through` because there's no rule match, but we do try to print it, so I think we're going to hit that bug.