This is a bug/incomplete feature. Ideally we cache all presence update information for all users on the system and then forward that to users as they come online. Currently the server only stores the online/offline status of users.
This is primarily a resource issue: how much data should we retain for each user? Presence packets can be arbitrarily big (with <x> extensions and free form status text) so what is the best balance of information to store?
I think the show state should probably be stored and forwarded, along with perhaps the first x characters of the presence status where x may be configurable by the server admin. <x> information should probably not be stored. I’'ll try and get these into a future release of the server.
Things get more complicated when foreign users (on different jabber domains) are tracked and we try to cache at least some of their presence information as well (potentially all users on the Internet).