I'd strongly recommend a new feature of the DockingManager:
Add a Property: (bool) AutoDisposeClosedControls
When true and DockVisiblity Changes to False on a control, and it's no longer a tabbed control, you SetEnableDocking to false and Dispose() the control.
THis is necessary because if a user closes a docked control it will linger forever, eating unneeded resources, unless its disposed.
I'm handling this right now as:
private void dockingManager1_DockVisibilityChanged(object sender, DockVisibilityChangedEventArgs arg)
{
if (!dockingManager1.IsTabbed(arg.Control) &&
!dockingManager1.GetDockVisibility(arg.Control))
{
dockingManager1.SetEnableDocking(arg.Control, false);
arg.Control.Dispose();
}