The amount of inefficiency in code these days is a testament to the enormous computational power of modern computers. We're talking billions of multiplications or additions per second and millions of division per second.
A mad genius could code most business logic to never be greater than o(n) outside of the most complex of problems. At that point a cache would become a liability due to cache invalidation errors, one of the hardest problems. Not that I recommend this approach. Caches are good tools and can help with DOS.
I think you vastly underestimate just how much slower DRAM is compared to cache (SRAM). Your super fast CPU will be sitting idly doing nothing if it were not for the caches between it and DRAM, which keep it fed with data and instructions.
A mad genius could code most business logic to never be greater than o(n) outside of the most complex of problems. At that point a cache would become a liability due to cache invalidation errors, one of the hardest problems. Not that I recommend this approach. Caches are good tools and can help with DOS.