The other issue is that the macro functions just like fingers. It simply skips the part where you actually press the buttons and sends the information to the computer without any key spamming. Then thecomputer forwards that information to the game itself. Thus you're not fiddling with the client by using a program and it's impossible to detect whether you're using macro or spamming the keys.
Note: I'm well aware that this is not how it really works, but it's close enough. It gives you an idea of the situation at hand at least, explaining why it cannot be detected. If somebody smarter than me with computers wants to correct me then please do.