This error exists currently, and I can reproduce reliably. Here we go:

1. join at least two channels, in tabs.
2. disconnect, then reconnect; do /not/ rejoin the channels yet.
3. with one of the two channel tabs active, send a join for the /other/ channel.
The active tab will now say the second channel's name, and receive the second channel's messages, but will be in the first channel's position and have the first channel's backlog; also, the second tab will still say the second channel's name in parentheses.
The autorejoin on connect does not exhibit this; however, putting a join in the on-connect script does.