I think it really depends on what sort of content will be represented in each of the document windows. Docking works well for Visual Studio because most of the windows that are being docked are text editors, or text representations of items (tree view, list view, grid view, etc).
Our software currently uses a dock manager control, even though the majority of our windows are not document windows. It works, but it never feels like it is the optimal solution. The interface can become cluttered very quickly, especially if a user decides they need to show almost every window at the same time.
The primary issue is scaling the content of each window to size appropriately. Again, a text editor scales perfectly, adding scroll bars where required, however that doesn't work for a complicated form with a mixed layout of controls.
To attempt to fix the scaling issue we had, at one time, implemented a control on every window that would dynamically scale the size of all of the controls (fonts, buttons, everything) however this too was never quite right. Forms would be designed with a certain size in mind, and in reality it was never actually displayed at that size.
Persisting, and restoring layouts is another consideration. The dock manager we use is able to serialize the layout, although we still needed to handle when/where/how that is used.
Support is another consideration. Since the layout is infinitely customizable, it becomes harder for support to help users navigate. We end up relying on the "Window" menu for everything.
"Find the Error window... nevermind... Go to the window menu and select Errors."
Potentially presenting an alternative that provides enough flexibility would meet the stakeholder's request.