Someone would still need to handle life-timing the objects in the presence of deletes. If the storage layer does it then it is one less thing to handle at the application level.
If you upload by hash then you need your own ref counting for deletes (or just don't support delete ... storage is cheap after all!)