Sure, they could have made a DNS lookup to avoid that misunderstanding. However, who knows the volume of tickets their support people are dealing with.
From that single incident alone, I'm not entirely convinced about Hetzner being hostile.
But Hetzner prohibits their customers from publishing porn, not just from storing it on their servers. If you point your browser at a Hetzner-hosted website and it shows porn, they don't care whether those files are stored elsewhere or not, porn website is porn website.
It would be like emailing porn to someone and then filing an abuse claim to their email host that their account has porn in it. Well, yeah, but they didn't put it there.
[0] This is the default in the Mastodon software, and it's a good thing. If one of my posts goes viral, my poor little server won't get flooded with O(num_followers) requests, but O(num_of_servers_with_followers) which is going to be a tiny fraction of the size. Admins can turn that behavior off on a per-server basis.
Willful breaking of ToS results in a terminated contract. Surprise!
And yet writes up a blog post that clearly explains that their porn was on S3, not Hetzner. Sounds like the report was accurate. But it makes me wonder what the result would have been had they taken the time to have that conversation to begin with.