Yes, that would fix it, but is a bit of a hack. This is part of a bigger problem where you generally need to instantiate all of the extensions before you log in. For example, if I want a CAPS hash to be sent with that initial presence message, I have to make sure CAPS is instantiated before login. Even something unrelated to presence, like Message Carbons, would make more sense if it was setup before login.
But you're right, Roster is particularly scary, because Smack instantiates it, not the user. This is hidden from the user.
Thanks.