There's no reason why it would work with a dash but not without it.

The problem is most probably the nick not being in any common channels, which means they're not in Internal Address List. $address() only works for people in your IAL.