Can counting problems have optimal substructure?
I think you understand what's going on well.  It's just two different ways of looking at things.  I agree with you that I think PEG is being a bit pedantic.  Personally, I never particularly liked "optimal substructure + overlapping subproblems" as the definition of dynamic programming; those are characteristics that dynamic programming algorithms tend to have, and tend to help us separate dynamic programming from (say) divide-and-conquer or greedy algorithms.  I like to think of dynamic programming as recursion plus memoization (and possibly, plus table-driven bottom-up memoization).  But to each their own.