hahaha !! that post was written in 2014 i think there might have been improvments after that …
Someone posted questionable content … hence just a soft delete just does not work.
Though I completely get @codinghorror point that there should not be hard delete in the UI. Since that creates a lot of possibilities for mischief.
Here is the code for topic.destroy https://github.com/discourse/discourse/blob/5f19ad95074329bea3328a796f061de79db9c227/app/controllers/topics_controller.rb#L454 this does seem to call PostDestroyer