For a catering business, I could see this being a disaster.
The business needs to fire X for cause. Maybe they're incompetent, maybe they're unreliable, maybe they're dishonest, maybe they're good at their job, but are nasty to other employees, or rude to the customers. But X does a job that is essential to the business, and requires specific skills (ie, you can't just get another random employee to sub for them).
X is fired, then the business posts a job ad, so as to not hurt X's feelings. However, they've still got their usual list of catering events scheduled, so during the period they are finding a replacement specialist, they have to either provide substandard service, or cancel contracts. I suspect that as far as the company reputation goes, being seen as mean for firing an employee after lining up a replacement is a better bet than being seen as incompetent and unreliable for not providing contracted services at a reasonable quality level.
Plus, X is probably still going around badmouthing the company, only now it's just "They fired me for no reason and with no warning!" rather than "They fired me for no reason and no warning and had already lined up my replacement!"
I would also be wary of making judgements about a company's competence and morality based on third hand stories, or solely on the word of a disgruntled ex-employee. As others have said, it can be hard to get an accurate assessment of a situation from a biased participant. People who have just been fired for cause generally don't go around saying they deserved it, actually. And people can be really nice and good friends (or simply have a good public face) and still be bad employees.