By analogy: think about how a preemptive multitasking OS with protected virtual memory means that a misbehaving user process cannot bring down the machine: the kinds of bugs in user programs in the time of DOS or Windows 3.0 that would destroy the world (e.g. a user process overwriting kernel memory, or a single-threaded user process failing to yield to the kernel) just can’t happen with a modern kernel.
The same kinds of security and safety guarantees that stem from the overall system architecture can exist in banking systems - that’s my point.
So yes, until everyone switches to Haskell we will always have bugs - but the kinds of bugs can be limited - as can the scale of their impact - with good system design.