With d3d11, there was some weirdness in alt tab management and you had to call all swap chain function from the window thread for safety if i remember correctly, but that is all.
Not necessarily true, but it is important that window messages are being processed during swapchain operation. If the swapchain APIs are being used on the window's thread, the WndProc is invoked recursively, otherwise, the swapchain APIs will block until the WndProc has processed the messages.
Also, a recently reported/fixed bug to be aware of: If using fullscreen swapchains, the swapchain should enter fullscreen on a thread which is processing messages with NULL, or Present() should be called on the same thread that entered fullscreen. There is an occasional issue where Present() can send a message to a window created during fullscreen transitions, and if the thread that owns that window isn't pumping messages for it, you can deadlock. As far as I'm aware, this bug has existed since Win7 or Win8, and has not been fixed in the wild yet.