Instead of starting with each machine having the entire list of numbers, wouldn't it just be easier to read each number it encounters, store it and then check future numbers against the stored list? There are sooo many more numbers my machine will never see. Why keep them all stored in all machines? And if they are concerned about running out of numbers and repeating them, there could be a timestamp attached to each locally stored number and have them expire from the list after X months. The chances that a person would save a bunch of K-cup tops to use to bypass the DRM 6 months later is pretty slim.
AFAIK, the original reason for the DRM was to prevent other companies from selling K-cups, so it would need a way to validate each cup, not just prevent reuse.