Well, how else do you hook without actually changing the checksum of the code you're hooking? VM protection based hooks like guard pages seemed kinda fragile to me, and just as detectable (aha, the VM flags on this page aren't the same as we set them, so that's naughty!)
With DR, sure they can detect that the DR's are set and pointing to their code. But so what? That could just mean you're debugging WoW, which (AFAIK) they're still not banning for. Plausible deniability ftw :P
Of course, all of this paranoia talk is just sort of "what if you get hit by lighting" stuff. The reality is that at the time, I wanted to play around with DR-based hooking and refresh my memory on how VEH worked. That's actually what drives 99% of my bot design -- curiousity, not necessarily always the best architecture choices.
I mean if I were just trying to be all pragmatic and efficient, I wouldn't even bother with botting (I have a number of end-game characters already, so what's in it for me?)
But... it's FUN... Hence when you look at my code base you get thing like DR hooks instead of plain vanilla detours, and a combo in-proc/out-of-proc approach to the "brain" instead of a simple (and already working) pure in-proc brain. Again, it's the fun factor that drives me... the challenge... not just the design choices of "making the best app."
That -- pragmatic software design and architecture decisions -- is what I do at work. That's WORK.