I think a late checkout messes up the hotel's housekeeping schedule and, if the hotel is particularly full, it means guest check-ins will be delayed. There's probably a cost to the hotel in there somewhere. I've had no issues checking out at 2pm in any IHG property that I've stayed at. I think 4pm is pushing it in most cases as check-in times are advertised as 3pm onwards. This means that housekeeping would have had to clean your room for the guest before 3pm.
I imagine the charge to you may be used to sweeten the next guest who was scheduled to have your room.
Just playing Devli's advocate...