One issue with dockable / detachable windows is the need to create extra VkSurfaces or GL contexts and switch between them during rendering.
Here I render to a single fullscreen transparent window and pass pointer events through to the windows underneath, when hovering over my application's "windows" the background is blurred.
Vulkan rendering my in-development UI framework
Transparent fullscreen window with WS_EX_TRANSPARENT and WS_EX_LAYERED window styles
Mouse pointer events are passed through with WM_NCHITTEST
Blur is achieved with the undocumented windows API function "SetWindowCompositionAttribute" with AccentState = ACCENT_ENABLE_BLURBEHIND (would be better to use DirectComposition)
One downside is that our "windows" can't be interleaved with or go underneath native windows but this technique still has some utility nonetheless.