Your post assumes that the controller has their own reason for wanting you at a specific altitude, despite the current altitude being legal.
In fact, what appears to be happening is that the controller is suggesting another altitude because they believe the current one is NOT valid/legal. Those are absolutely NOT the same issue.
You're saying, "well, regardless of the reason, don't talk to ATC if you won't want to be controlled."
That's fine, except, the reason for the instruction is likely based on a flawed assumption. Therefore, the solution is to question that assumption, rather than pack up and leave. It's basic communication between two human beings.