I don't think spoilability is taken into account when it comes to hauling (unfortunately), so they'll gladly pass by the fresh animal corpse to gather old bones from a long past FB rampage and then get unhappy thoughts from the miasma that eventually develops in their path.
Temporary links only stockpiles as proposed by Vattic is a reasonable work around.
A micro management intensive version is to use burrows to ensure the food hauler doesn't have access to the seed stockpile, but there is a significant risk the hauler will just do nothing because he'll constantly take and drop seed hauling jobs with the attendant cancellation spamming.
The jobs rewrite has improved a lot of things, but there definitely is still room for a lot of improvement; improving it without impacting performance is the tricky part, though.
A low dorf fortress is micro management intensive since too many dorfs have to wear too many hats, and it's very easy to build up mountains of pent up hauling work. once a mountain is addressed, you don't have much influence over the order in which it's addressed.
You could set up a seed links only stockpile in your mess hall to block hauling to the seed stockpile, but that will cause the farmer to have to walk to the mess hall for each seed to be planted, and it won't do anything for the still. You might also use a setup that has no seed stockpile at all, so all seeds have to be collected from where they're dropped for planting, as I don't think seeds spoil.
Refuse hauling has an even lower general priority than food hauling, so using dumping to speed up food moving will only work if refuse hauling is enabled and food hauling is disabled, and you don't have other refuse hauling jobs pent up. Enabling hauling refuse from the outside and the hauling of vermin is probably harmful in this case, for instance.