Reshaping form using control points?

 From:  Playdo
5183.1 
Is it possible to reshape an object using its control points?

I know that this can be done with a 2d spline but can it be done with a 3d form?

Take a cube for example,

If the surfaces aren't joined and I try moving the control points, it reshapes but the surfaces come apart from each other. But if I join the surfaces, I am unable to move the control points.

I'm obviously missing the correct workflow here.