Properly designed functional test should and could detect basically everything that the bed-of-nails or probing test would, plus a lot more. After all, if you test each and every feature, what's there left for the user to find faults at?
Neither of these test reliability issues due to poor solder quality, contamination, etc. I guess it's AOI and random xray or destructive sampling for one every 100 units or so for that.
IMHO, testpoint probing ICT is overrated (it's so easy to just suggest such automated, catch-all, off-the-shelf solution), and I believe that a combination of AOI and well-designed functional testing finds the real-world issues much better. Functional testing has the largest scope.
For example, I designed, outsourced the manufacturing, and production tested myself a batch of fairly complex boards with an STM32 MCU and an I2C acccelerometer. That particular oldish STM32 MCU has a notoriously buggy I2C implementation, and the code had all kinds of workarounds to get the prototypes working reliably. You would expect that once the code for such digital MCU peripheral works (and the signal integrity on the prototypes is OK), there couldn't be software-related surprises when just producing more of the same.
But, strangely, in about 20% of the boards, the I2C sensor was nonfunctional. Of course I first suspected the Chinese soldering of the miniatyre LGA part, but nope, it was in software. Adding extra reset-turn-back-on-sequence as defined in errata sheet for another MCU of the same family (not the affected device itself - I always read the errata!), all units were working.
Only functional testing revealed this.