If you are building a PCB to do any kind of hardware interfacing then you probably end up using a fpga for some of the logic. If you add a small arm or ppc you'll almost definitely need one.
Given you have an fpga, you start asking the question 'how much of the functionality can I put in the fpga' - reducing component count is a significant cost reduction. You might find it will all fit in the fpga.
We've also moved some functionality from a dsp to an fpga. The main commercial reason was that the dsp had been made obsolete. Using an alternate dsp (if a suitable one could be found - or a small cpu/soc of any other type) would be a significant development cost that might have to de done again.
Use an fpga and even if it goes obsolete you can substitute one from the next generation with a (hopefully) minimal pcb respin.
Moving between fpga suppliers is probably more tricky, but may well still be possible.
While DSPs have some instructions aimed at signal processing, they are often not dissimilar from any other cpu. With an fpga you can split between software and hardware. We use a big FFT block to do tone detect of 256 audio channels and a 100Mhz Nios cpu to control it - replacing a DSP core.
We also have a multi-channel hdlc controller written entirely in software - this has tight real-time constraints and is carefully optimised to reduce the worst-case code path - no caches and the dynamic branch prediction has been disabled.