I agree that this behavior might be unexpected sometimes. We are still discussing how to handle it.
In the meantime, if you experience this problem, there is a way to restore the page controls. I wrote some code that does exactly that. I attached it to this post. The code will place the orphaned controls in some existing placeholder. It searches for a "Body" or a "Content" placeholder and puts the orphaned controls there. If such placeholders does not exist, it uses the first available placeholder. Feel free to apply some custom logic when necessary.
In most cases, the controls will not be exactly as you want them after you run the code. You will probably have to move them or delete them or do some other changes. This is why the code works on a draft of a page, not the public version. If a draft for the page does not exist, it will be created.
The archive I attached contains an .aspx file + codebehind. You need to put it somewhere in your web application and access it. The code specifies which page to process. You will need to modify the ID of the page in the code to make it process the page you want. You can also modify it to process all pages, if you need to. If you decide, you can also alter the code so that it displays the IDs of the missing placeholders.
We have reports that the latest official update fixed all causes and all works fine. If anyone experiences similar behavior, please try upgrading to the latest version.