>Thinking it over, the message is supposed to be sent to humans, not machines. So the correct thing would be to redirect to a
>service-provider hosted page, that says what was blocked and why.
The HTTP status codes are not really intended for humans.
As internet censorship becomes more prevalent it will be important for software to be able to route around it automatically. A service-provider block page is not as useful for that purpose.
We can't stop an ISP redirecting to a block page but that should not be the specified behaviour within the HTTP RFC.
It is also possible to do both i.e. the HTTP response code is e.g. 451 but the response comes with an HTML body that is some kind of explanation, including a clickable link to additional information.