I will split this onto three separate parts.
Showing as -1
Let me just repeat – this should never show up as -1 and I would very much like to replicate how it happened. As you have seen above, I have also asked a colleague for input in case they can think of such a scenario. If it continued to stay at that value then I must ask if you have some sort of WP caching plugin active – like W3 Total Cache for example.
When is it switched to 0
It is switched between the determination that the WP page representing the forum display has been requested and the determination of which forum ‘view’ is required. By this time we have identified the user and checked their credentials, settings etc., To support the profile option of forcing a user to be shown their profile form on their first visit, the post count is checked. If this is found to be -1 and the option is set, the profile form replaces the requested view. If the option is not set, the post count is switched to zero and the page continues to load.
Registration and Login
Your assertion on this depends on how your registration system is set up. So I will assume, in the first instance, that your registration process is standard WordPress or follows the standard model. When the user completes the registration form he is obviously not yet a member. If on completion he is then redirected to the forum page he is still not a member. He has been sent an email with new user details. He may well be redirected to the forum but he also has not logged in. Until he is logged in, WordPress has no way of knowing who he is. Once logged in and loading a forum page, the switch of his post count will take place as described above. But that can not be on the first forum page load after registration.