Well I understand the scenario. And you are right that the post is already created / edited. But again, if you get in the wp_die(), it means that the user does not have the permission to do create / edit posts.
So in my opinion, there is an issue on your side, because anybody can create / edit posts. It might not be specifically a problem for you if you have only one permission level for your web service. But it would be an issue in a more general case.
Moreover, if I replace the wp_die() by return, then you would get a post with no language.