You can accomplish this by using the vSphere API which is the underlying API that the vCloud API is built on top of. When removing a virtual disk from a VM, you have the option of just removing it from the VM or deleting the disk all together. What you can do is just remove all the virtual disks associated with a given VM, then issue a delete via vCloud API and in theory (this works fine with just vSphere API) you should have a deleted VM but since the virtual disks are still around, you'll end up with the directory that contains only the VMDKs of that VM
vCloud Director considers itself the source of truth for a VM, not vCenter Server. If you muck with a VM configuration using the vSphere APIs you run the risk of rendering it useless in VCD.
Even if you somehow manage to leave orphaned VMDKs, you don't have a way of attaching them to another vApp/VM using the vCloud API, and if you attempt to do it using the vSphere APIs there's no guarantee they'll be on an accessible datastore.
If your goal is to muck with the internals of a VM, VCD is probably not the abstraction you want to work with, since it's all about taking out the complexity. At this point, using vSphere only would likely yield better results for your use case.