Where I work (as a temp), the company is closing on the 22nd at lunchtime, but everyone gets paid until normal closing time (ie: 5pm.). I think it is simply a goodwill gesture.
We are also having a xmas party on the 21st, from 1pm onwards, and everyone is getting paid as normal (not holiday). However, if you do not want to go, it will be considered as taking a half day holiday, just as if you were not going to work.
I think it is pretty fair, as indeed they are paying you for partying!