Actually the sophisticated antivirus programs no longer have just a list of patterns/signatures but also use heuristics to detect “virusy” behavior. So in a sense this is “fire prevention.”
There will always be software flaws, even in the face of tools such as you mentioned which can flag buffer overruns. Some subset of these flaws will be exploitable. Buffer overflows and stack tricks are certainly prevalent but I have to believe they’re not the only exploits.