> I suppose this is due to the fact that the app only wanted to store 200px images

Exactly. I first resize the image to max 400px to have a reasonable size in the crop dialog. As mentioned in the comments elsewhere, GD also apparently does a better job of resizing than the browser, you transfer less data and you don't have to calculate the crop based on the original size.

> or do not resize at all since we cannot know how small the part is the the user want to crop/cut out.

The user could upload a 400x2000 px image, so we have to do some resizing.