@polaritydnb, I have often found myself using the technique you mentioned above by adding a DOM element to the parent DOM and instantiating my can.Control on that new element.
Then, like you said, you can just remove that new element and it will automatically call destroy on the control.
You can also call .empty() on the parent element providing there isn't anything else in parent that you care about.
@daffl, your answer if pretty much the same, no? You're instantiating the new SectionControl on ".section" which implies it exists as a child (descendent) of this.element. It's just a matter of how it got there.
The difference is you are relying on calling destroy on the control directly instead of removing or emptying the DOM to do it indirectly. And your method leave the .section element there to be re-used.