I have an existing web app with one virtual application. Later I added a deployment slot for staging. The deployment slot was created cloning the main web app. When I swapped the production slot for the staging slot the virtual application was gone. Am I missing a checkbox or setting? Is there a solution or workaround for that? Well, apart from creating separate web apps for each virtual application.

Virtual Applications/Directories are swapped along with the web site content of a slot. This behaviour is not configurable at this time.
E.g.
From your question, it sounds like you have done a swap with both slots containing an additional Virtual Application and have ended up with only the default Virtual Application.
I tried the swap multiple times and the additional Virtual Application swapped each time. So my suggestions, are:
Hope that helps.