One of the big problems is stuff that a server wouldn't know is happening
A simple example is wallhacks in FPS games, if you can somehow get the client computer to not render walls properly, the player can see where everyone else is in the level.
You don't need to mess with the game client here if you're clever about it, you mess with the operating system and graphics drivers so that a signed binary can continue to connect and behaves entirely legitimately from the server's perspective.
Of course there are mitigations we could come up with for this, but you're just in a game of cat and mouse. If it was a solved problem, kernel level anti-cheat just wouldn't be a thing for the most part. Yet it's what the competitors demand in the top flight competitions, because there isn't a better way to prevent a whole class of cheating.
To be clear, not defending it and I personally avoid games that use it, but I understand why it exists