Let's assume you just performed the following theoretically dot-repeatable command, which involves search:
d/foo<CR>
After that, you moved the cursor somewhere else:
/three<CR>
where you want to repeat the last deletion:
.
With cpoptions-=r, doing . will repeat the command exactly as typed: the text from the cursor to the next foo is deleted:

- The dot-repeatable command is supposedly
d/foo<CR>, - the dot-repeated command is indeed
d/foo<CR>.
No surprise.
With cpoptions+=r, the command reuses the last search, in this case three, not the one you used in the supposedly dot-repeatable command:

- The dot-repeatable command is presumably
d/foo<CR>, - the dot-repeated command is actually
d/three<CR>, not d/foo<CR>, - so the dot-repeatable command was actually more like
d//: "delete until next match of the last search pattern" instead of "delete until the next foo".
Surprise!
This behavior was somewhat expected in Vi but it was (rightfully, might I say) considered unintuitive and thus improved in Vim while leaving an escape hatch for people who preferred the Vi way. That is the whole point of :help 'cpotions'.