Well, it happened to me again in reverse yesterday.
I was confirmed yesterday LGA-YYZ at 17:10 but after they started issuing wind advisories, I decided to head to the airport and get on the next flight. I was holding a full J ticket, and yet the last J seat went to an upgrade and not to the me, although I was next in line.
Oh well, 27 D on a full full flight isn't as bad as 27 E.
I assume, the poor agent dealing with the mess at the gate wasn't fully in control and just went first come first served. (there were so many cancellations and delays that I can't really blame her.)