I'd argue that anti-cheat is analogus to security-by-obscurity. It is basically a bad compromise to mitigate issues of a broken architecture.
Imagine that online banks would do login checks on client side, and you'd have to install anti-steal software before you can login. Would that be acceptable to reduce fraudalent transactions? Of course, there'll still be a signifcant amount of stolen funds, but it'd prevent most of your neighbors to login to your account.
Well, this is horrible design (and has basically happened with credit cards btw...) and you should address it at it's core, by bulding the architecture in a way that such fraudalent transactions are next-to impossible.
My point is: if cheating is so much of an issue, games should be architected in a way to avoid the ability of cheating from client-side at all, without additional monitoring required. Anti-cheat is a bad workaround to a core development problem, at the expense of the customer instead of developers.