Earlier quoted context omitted.
Actually deleting content would be a very expensive operation at Facebook's scale. Flagging it as deleted is the most optimal way. What's troubling is that this content somehow got undeleted on its own. Not once, but twice.
Every operation at Facebook scale is expensive. But they have the resources. They don't do something because they don't want to, not because manipulating their data is hard. They do complicated things to their data all the time.
The fact is, when Facebook gives you the option to "delete" something there is a reasonable expectation that by doing so that post, picture, etc... will be deleted. Removed. Gone. Permanently. If they want to give you the option to retrieve it later in case you accidentally delete something then call it "Flag for deletion" instead.
To do ANYTHING else is disingenuous at best. Otherwise known as a lie.
This is yet more proof that users of Facebook are the product and will be treated as such. Whoever pays Facebook actual money gets to dictate the terms and they are the people that want Facebook to never delete your data.