You didn't miss anything. It's a race condition that I couldn't figure out so far, and neither did Lindens... In fact, every viewer with a LLVOAvatarSelf class suffers from it (v2/3 viewers and v1 UI viewers which got it backported) and a hack is in place in them to try and prevent it. What happens is that the server sends a spurious "agent flying" message when the avatar stands and without that hack, your avatar would start flying (hovering) when you stand up: see
this JIRA entry for details. Alas, the hack proved not to be sufficient in some cases in the Cool VL Viewer (the viewer seems too fast (!!!) for that race condition to be caught by LL's hack: i.e. it can still flies the avatar before the hack is triggered) and I had to implement an additional one, that "auto-unflies" the avatar whenever the race condition still happens.
You can avoid this glitch by getting very close (< 0.5m) to the seat before sitting down your avatar on it.
UPDATE: as I searched for the JIRA issue to post its address in this message, I noticed a pointer to
another JIRA that actually gave me the solution (via a third hack I just implemented and seems to be working great): it looks like when you are at a high altitude and sitting down on a far object, the server also sends a spurious agent flying message (and you are then considered as both sitting and flying !): cancelling the fly flag just after the avatar is sat seems to solve that issue (and could well render the two other hacks useless...). I'll test this new hack and will make it part of the next release if it works properly...