I’ve never found the cw/dw case illogical. When I’m deleting a “word” (in prose or code) it’s rarely, perhaps never, my intention to leave a double space between the surrounding words. But if I am changing one, the likelihood is that I’ll want to trailing space to remain after I type the replacement.
So whilst I see nothing illogical, I’m in agreement that a change to these commands would throw me!