How to remove a TTree from a .root file?

The physical ROOT file will never be “shrunk”. The space occupied by the “deleted” contents will be marked as “free” inside and will be reused when you write anything new to this ROOT file again.
The only way to “shrink” a ROOT file is to copy its contents into a new ROOT file.

Just for completeness of this thread, see also: File size with a CloneTree