If the NN doesn't get it right, it's absolutely not the end of the world. First of all, triaging the failures usually turns up something interesting / some connecting thread. And as for fixing issues, your options are typically:
1. Retrain with more examples to help it get it right (easier these days since you can take advantage of synthetic data / self- or semi-supervised approaches). Specifically it will help to generate or find examples that approximate the failures.
2. Shape your loss to penalize undesirable behavior / tendencies you've identified in triage
3. Add inputs or outputs that help your net solve the problem better (e.g. side inputs that may help the net not overfit to its available data)
These "inscrutable black boxes," while hard to edit directly, are not impossible to evaluate which means you can just measure to see if they're better than more explicit systems. And most real world systems are patchworks of ML + heuristics to give some desired level of performance.
Furthermore there is a big field of folks dedicated to elucidating what your net is learning (e.g. saliency). The tools are pretty cool -- for example in computer vision you can visualize whether your net is overfitting to background data in your training examples.
A valid critique of all of this is simply that it's expensive. Very expensive to build teams to warehouse and clean huge amounts of data, then build unbiased / fair model evaluations, then build models, then integrate them into real world stuff, usually to be used in conjunction with non-learned algos.
Another valid critique is that many companies have started using models they can't retrain or fix (e.g. off the shelf LLMs). This is dangerous territory since you lose so many of the options I outlined above.