In the good old days IATA had a standard for carry-on baggage. The vast majority of airlines, IATA or not, applied these standards because ... well it was a standard. However the competition authorities (led by DG-COMP in Brussels) saw this as being anti-competitive, the theory being the standard would prevent airlines who wanted to give a higher allowance from doing so.
So IATA no longer sets a standard and you've got an unholy mess, but you do have competition.
Same for hold baggage the 20kg (or 2 pieces imposed by the US government in its markets) standard has gone the way of the 'Spruce Goose'.
In some case the alliances have limited immunity to discuss these matters but that is market limited. e.g. LH/UA or BA/AA or DL/AF could talk about a common standard to apply to connecting flights between alliance members between the US and Europe. However their immunity does not extend to connecting passengers travelling between Canada or Mexico or etc. to Europe. Applying a jointly agreed standard could be considered to be anti-competitive (and it would be) by the Canadian, Mexican, etc. authorities. So how do you apply a standard that only applies to local passengers and not to (some) connecting passengers?
Keeps the lawyers rich.
In this competitive market it would be nice if an airline applied the same rules to flights to and from the same point. Case in hand from Bristol EZY allows 1 piece only (their standard rule) plus one standard duty-free bag. From Geneva to Bristol it's one piece only, no exception for duty-free. At check-in in Geneva lots of arguments (I was allowed 2 when I flew in) and repacking (Fed up Swissport people told to enforce the rule allowing no exceptions)