What is the difference between dynamic programming and a mere caching?
There are some other key aspects of dynamic programming besides caching, namely, it is about writing solutions of optimization problems recursively to exploit the fact that optimal solutions are constructed out of optimal solutions to subproblems, and further that caching limits the number of recursive calls to the maximum number of distinct subproblems that need to be solved.

Also, dynamic programming is not so much a formalism, as an intuitive framework for solving many optimization problems recursively.

Further, the use of such an "epic buzzword" is largely the result of brilliant marketing by Richard Bellman...