I'm unable to reproduce this. I've created a simple application that has a From with a DckWorkspace on it. When the Form closes, it automatically Disposed the DeckWorkspace (no code added by me - it's in the Form's Controls collection becasue
I dropped it on the Form in the designer).
When I close the containing Form, the Form automatically calls Dispose on the Workspace. Since all SmartParts are held in the Controls collection of the Workspace (which is a ContainerControl derivative), those SmartParts get Disposed as well.
This all happens with no code on my part.
I verified this by modifying the Workspace base class and hooking the Disposed event of all SmartParts in OnShow. The event handler does indeed get called for the SmartParts when the containing Form is Closed as expected.