why is it so good
memory changes -> generally easier to detect, scanning executable memory, validate checksums, use some more less advanced cryptors or game protectors
packet validation harder to detect, lead to no generic solution, would have to be directed towards certain packet bots
now code caving is easy as exe is completely not protected
thus i still prefer packet injection/modification, more elegant solution ( offtopic, just my 2 cents

)