
No not exactly. When a docking window is closed, we leave a breadcrumb behind in the UI that says where it was. If you reopen the docking window, it locates a breadcrumb for itself (if one is found) and reopens in that exact spot. Otherwise, it runs through the default location logic, where you can customize via properties and an event where a docking window opens when no breadcrumb is found.
When you load a layout, all the UI structure is cleared, which includes wiping out breadcrumbs. So after that, any previously open documents that aren't part of the layout deserialization will have lost their breadcrumbs and will fall back to running the default location logic.
For your scenario, I'm not sure if this is feasible but what if you used nested dock sites. So you'd have an outer dock site that had your always-available tool windows. Then each "document" in that outer dock site would represent your data file. The docking window for that data file document would have another dock site inside of it that would have all the tool windows related to that particular data file. Then you could save/load layouts for those without affecting each other. The only downside is that you couldn't dock the data file's tool windows in with the outer dock site's tool windows. But maybe that's not important for you.