I've run a couple of tests and was surprised at the results.
1. Blank sheet with just the following VBA code saved was 15.5K
Set rng = Range("a1:a1000")
For Each c In rng
c.Value = ""
2. Ran the code and saved the sheet, now 19K.
3. changed the code so the c.value line now reads c.clearcontents, ran this saved the sheet - result 19K!
It seems Excel is similar to Access in this way, removing a value does not free space and you'd need to compact it somehow.
My prefference would always be to clearcontents as I would have thought it would remove any references to cells from the file. Maybe this will be corrected in a later version of Excel (I'm running 2000)