I'll explain it better, NickServ stored the address it's given by the ircd. That means that if your ircd sends a crypted host to Anope, that is what Anope displays. In the case of Unreal it sends an intro string that contains the real IP for users, then changes it when the use gets mode +x and wipes out the real IP from before.
Lets notice that we recieve the real IP, in this case 192.168.2.9, then when +x is set the ircd ovewrites it and broadcasts a crypted host.
[Sep 20 20:01:44.445483 2008] debug: Received: NICK katsklaw 1 1221955303 darkness 192.168.2.9 irc.foonet.com 0 +iwx C48A576F.435C9371.A910A945.IP wKgCCQ== :Haunting your Dreams
[Sep 20 20:01:44.445650 2008] debug: new user: katsklaw
[Sep 20 20:01:44.445710 2008] LOGUSERS: katsklaw (darkness@192.168.2.9 => C48A576F.435C9371.A910A945.IP) (Haunting your Dreams) [192.168.2.9] connected to the network (irc.foonet.com).
Now it changes the host which overwrites what it was:
[Sep 20 20:01:44.446483 2008] debug: Changing mode for katsklaw to +iwx
[Sep 20 20:01:44.446507 2008] debug: katsklaw changes its host to C48A576F.435C9371.A910A945.IP
So as I said before, Anope stores the address given by the IRCd. Anope can not control the address it receives. You see a different address in a /whois because the ircd stores both addresses as it should.
Anope stores the last mask in na->last_usermask which is the only mask a module would be able to use. I doubt this can be done without modifying the core, which in that case won't happen for quite some time.