You can't reverse a payment unless it hasn't been confirmed, and it stays that way long enough for the blockchain to forget it. Even then, if the darknet site owner you just paid is smart, he'll rebroadcast that transaction.
But, how can a site owner rebroadcast someone else's tx that has not confirmed? Only the original sender can do that.
If you have the transaction hex of any transaction then you can keep rebroadcasting that transaction. There is nothing that stops people from doing that, and there shouldn't be anything that stops people from doing that.