what is preventing me from changing difficulty every submit when pool mining? If I do pool mining at difficulty=1000 and I find a share with difficulty=2000, I can tell the pool that I was mining at difficulty=2000 and then submit the share. I can earn more in this way.

Does the pool allow me to change difficulty whenever I want? If not, assume that it let me change difficulty every 30 minutes, then I can use a high difficulty which makes every share more than 30 minutes.

Even if this cannot be done, when I find a share with difficulty=2000, I can connect to the pool as a new worker with a static difficulty=2000 and submit the share.

What is preventing me from doing this?
The work you were given is associated with a difficulty that the server decided upon before giving you that work.

Any work results you send in must be associated with work data known by the server.

When you submit work results, the work is looked up, and voila, there is the difficulty.

You may be given new work that has a different difficulty associated with it at a later time, but the old work still has the old difficulty.