Earlier quoted context omitted.
Having the program behave differently under a debugger is a great way to introduce bugs that disappear when the debugger is present. Any features of this type would have to be completely optional.
Yes, and introducing bugs is not the only issue at stake. Imagine malware that could react differently when a debugger is attached.
that has been the case for a long time: simply timing some instructions is generally enough to tell you that you're running under a debugger. It's also helpful for copy protection.