On freenode you can use ban masks like $a:foo (to ban the account foo) or $r:*bar* (to ban any realnames containing bar). See http://freenode.net/using_the_network.shtml .
irssi doesn't like those: you can't use /ban $a:foo. Instead you have to resort to /mode +b $a:foo. This is because irssi thinks a ban mask without ! in it must be a nick, and as $a:foo isn't a nick in the channel, irssi silently ignores it.
I propose solving this by extending the check for ! to also accept something as-is if it starts with $.
src/irc/core/bans.c, ban_get_masks():
if (**ban == '$' || strchr(*ban, '!') != NULL) {