Ok, I now made the following patch:
which seems to do what I want:
Still, the calculation doesn't seem to be as exact as it could be and I'd like to know whether there is a more suitable solution.
Furthermore, I'm more or less undoing an explicit special case from the package code, so I assume it was there for a reason ;-)
tabulary still behaves differently from
tabularx in this case. See for instance
foo foo foo foo foo foo foo &bar&baz
So even when "spreading", the column width is still proportional to the amount of material in the column, which seems to be a good thing to me.