Bizarre -- and I would question the many entries for 'puppy-dog,' with a hyphen, as well. I would guess that might have been old-fashioned BE, unless any current BE speakers want to preserve it.
I would certainly call 'dog puppy' a candidate for deletion, and would delete all the hyphens too, and/or just change the entries to 'puppy,' without 'dog.'
Surely it's not necessary to reaffirm that a puppy is by definition a young dog, just as a kitten is by definition a young cat. So we also don't say '*cat kitten' ...
Children and some regional speakers do sometimes say 'puppy dog,' which I would class in the same category as 'tuna fish' or 'ATM machine,' a redundancy that's normal in informal language.
Maybe the odd entries came about because in German some of the terms overlap with the young of other species? Whereas in English, wolves, foxes, etc. have pups, kits, etc. rather than puppies, just as lions and tigers have cubs rather than kittens?