To handle the huge amount of media it handles, Facebook has a content distribution network that stores many copies of the media in many places. When you upload it goes to an initial storage location, and when you view it the server you're talking to will fetch a copy if it doesn't already have it. (I don't work at Facebook, but this is a typical large-scale caching system.)
When you delete a posting, nothing actually gets deleted, at least not right away. A flag is set which tells the system not to display the post anymore. The caches of the media files eventually expire and they get deleted. The initial storage location will probably stay until the posting is really deleted. That could be forever, not for any nefarious reasons but because of cross-referencing between database records.
Your posting has a unique id, and when someone likes it, or adds a comment to it, or shares it, the id is used to cross-reference their action/content with yours. If your post is deleted there would be dangling cross-refefences, and database systems usually don't like that. It's often better to leave the record in the database but flag it as "deleted" so it won't be displayed to anyone (except maybe admins and you.)