I am not good at programming. Please do not judge strictly. The game keeps a log and records all the parameters of the pilot and his ship, which have a limit to n development when playing fair. Unless it is impossible to automate the verification of compliance of these parameters if someone uses a cheat giving + 20% damage / shield recovery / acceleration speed and so on beyond the maximum allowed?
The game is de-facto designed as single player with some modifications to enable peer to peer playing.
Then there are 'servers' - but their function is mostly only:
- remotely store player data
- pairing with other players (Open, PGs)
The client has the highest say in this architecture, that's why cheating/hacking is so successful - trick the client by memory manipulation and you've 'won'.
While this architecture is quite effective when all clients play fair, it is fragile when at least one don't.
The server does not yet check whether the status updates by client are consistent - either design decision, design oversight or budget cuts.
It is possible to implement some sanity checks - whether the state change is consistent with last know player state (like jump range check) ...
BUT it will increase load on servers, thus the Elite Dangerous infrastructure will be more expensive to maintain.
And it won't solve all cheats - those where server is not involved at all - when you are already instanced / fighting / mining etc ...
There it would be possible to use other instanced clients to perform some checks and send warnings to servers.
But we are back at: developer time == money to put into the game. For not-so-visible feature.
You can't sell same game with only new feature anti-cheat protection.
Anyway that would be continuous battle ...