I tend towards dropping for many database objects (such as indexes,discontinued ETLs, stored procs, etc).
Primarily because I don't like having junk sit around in production. If I know today that it's not needed, but I leave it there, will it ever be deleted? My experience tells me it's unlikely. (9 months ago I did a clean-up of obsolete objects in one database, and I dropped 40% of the stored procs.)
However, I do have source control so I don't have to worry about losing something permanently and, for most things, restoring from source control is as fast as re-enabling it.