When considering the cost of recruitment, training, and negative productivity associated with low morale it is mind-boggling that companies paying $60-100K+ for employees cannot or will not find 1% of that employee's total to keep them happy once a year.
To be honest a lot of the things company do don't even seem like profit maximization (since a Christmas gift could easily be argued that way), they just feel like constant short term thinking, medium to long term be damned. They know this is worse for them eventually, but yet they do it anyway since that 1% saved today across the whole company might be a big number.
A lot of it all comes back to poor management training and how they spend too much time maximizing the balance sheet rather than maximizing the workplace itself. Same reason why IT pros spent years trying to get two monitors regardless of the well known productivity gains.