Dynamic programming (DP) is an important and frequent problem in competitive programming contests. Famous CLRS book categorize DP problems that have optimal substructure and overlapping sub-problems. Yet dynamic programming was invented for mathematical programming.
I believe from operational research perspective DP is more than “optimal substructure” and “overlapping sub-problems”.
So what are differences between DP in computer science and operational research?
As an operations researcher who uses DP, I will say that for the most part, OR treats DP as a decision-making tool, i.e., a method for mathematical optimization, as you say.
There are cases in which we try to discern special structure within the solution to the DP. For example, in inventory theory, we use the structure of the DP model to prove that the optimal policy has a certain structure, a structure that is much simpler than having to provide the whole table of action values for each state. But this is maybe an exception rather than the rule.