We all know that IATA and ICAO have different sets of codes for airports and airlines. My question is, why does IATA not agree to use the ICAO codes and end this duality. Note that the focus of the question is different from other code-related questions posed on this forum - in particular it's not "why do airports and airlines have two sets of codes ?". I understand that the ICAO codes are more general, have wider applicability etc so why can't IATA enslave their own codes to the ICAO ones ? And in some cases at least, the ICAO airline code is how Joe Q Public refers to the airline anyway (JAL, KLM, PIA, SIA .....). So why not just one set which is the ICAO set ?
For airlines to switch from IATA codes to ICAO codes would cost money. A lot of money. Updating legacy hardware and software can be shockingly expensive.
To what end? Even long-term there is a disadvantage in that larger baggage tags are needed. What financial benefit do you imagine the airlines will reap from this transition that will make up for the costs?