Thanks for the answers. I didn’t realize blocked seats stayed blocked up until departure - a few days ago just before boarding, the seat map still showed the empty seat next to me as occupied but it was available in seat selection, and even after the door closed it was still occupied in the seat map (couldn’t check in seat selection since I had already boarded). Sounds like the only reliable way to judge empty seats is through seat selection.