Ответ здесь сводится к тому, что называется «специфичность». Чтобы понять все об этом, взгляните на раздел Расчет специфичности селектора в спецификации селекторов CSS3 (в спецификации CSS2.1 есть похожие вещи).
С учетом системы base-10 (поскольку вы не превышаете счет 10 для любого уровня, на котором это безопасно сделать), .menu a:hover
заканчивается со спецификацией 021, но .tab:hover
получает специфичность 020, что ниже, поэтому, если в обоих правилах определено правило, .menu a:hover
выиграет.
Если бы вы использовали a.tab:hover
, его специфичность была бы 021, что равняется .menu a:hover
, и поэтому оно равняется порядку, в котором они указаны, который применяется.