Steps 3 and 4 were not fixing it as best as they could. They are just doing another wrong thing trying to cover the earlier mistake by sacrificing another group of their customers instead of Bitfinex itself. This group of their customers are also innocent as they are just lured by the foolish policy. They could transfer their BTC to the personal wallet to get BCH if they were not lured. Everyone playing game in Bitfinex is trying to maximize profits based on its policy, robbing or being robbed. The one who breaks the policy or changes the policy without notifying is the nasty one.
You are ignoring the underlying sense of fairness that bitfinex was trying to achieve and overfocusing on the precise letter of what they wrote. This is a common problem among engineers. It turns out that the former is more important than the latter to the vast majority of humans.