This appears to be because
threadMadeVisible()is only called on update, and not new threads.
Post::adjustUserMessageCountIfNeededis directly editing the DB for the user record, and thus the in-memory visitor entity record isn't being updated as expected, a page reload 'fixes' it by causing the db record to be re-read.
This can cause some minor confusion if an add-on tries to interact with the user's
message_countin the same request