| 1. | Delaying the user's page loads. |
| 2. | Throwing error messages to users. |
(1) Wedge is known to offer this feature,
(2) Banned user may not be so stupid and might read about it,
(3) they may simply log off (if they're not also tracked by IP), or look for their topics through google, then explore the cached version (in which case IP tracking won't help at all), and they would then be able to see the guest version of their topic -- which doesn't have their posts.
(4) User might then choose to retaliate for the waste of time and/or to complain about the silent censorship.
* That's an even better opportunity to rename the 'approved' field to 'status', and have it set between several flags, such as 'unapproved' (has to go through approval), 'live' (normal post), 'ignored' (hellbanning), 'hidden' (user chose to temporarily hide their post through a button, which they can re-publish later)... Or even, although I wouldn't recommend it, 'scheduled', i.e. post won't be shown until the scheduled time is right. Of course I'd rather have a separate table for scheduled posts, because otherwise the post ID would give away that it's not a live post, you could even recover the original posting date by comparing with posts with similar IDs.
* At hellban time, give the moderator the choice between 'ignoring all existing posts' (e.g. spammers), or 'ignoring future posts' (i.e. do not change status for existing posts).
* User can view own posts normally. Moderators can view them but with a specific style around the post showing that it's globally ignored, and the Quote/Reply buttons should be disabled to prevent a moderator from accidentally quoting a post and then having others point out that the post was non-existent in the first place.
I think it's an interesting thing to explore, provided we find workarounds for the 'things that could go wrong' area...