That test actually wouldn't work:
> navigator.webdriver
true
> Object.getOwnPropertyDescriptor(navigator, 'webdriver')
undefined
As you say though, it's a cat and mouse game and you could always override the behavior of getOwnPropertyDescriptor() if it were used in a test.