According to XEP-0016 2.14
For message stanzas, the server SHOULD return an error, which SHOULD be <service-unavailable/>. 
For IQ stanzas of type "get" or "set", the server MUST return an error, which SHOULD be <service-unavailable/>. IQ stanzas of other types MUST be silently dropped by the server.
Openfire currently does none of that.
First part is fixed.
@Florian (or any other): Please review the commit.
The commit does not cover this case though (I will try to figure it out though):
If the user attempts to send an outbound stanza to a contact and that stanza type is blocked, the user's server MUST NOT route the stanza to the contact but instead MUST return a <not-acceptable/> error
The <not-acceptable/> case is now fixed, too (only for Message and IQ stanzas, Presence probably doesn't make much sense)