Потому что "~" видит только тех сиблингов, которые находятся ниже первого. В CSS нет возможности выбрать сиблинга, стоящего выше, но есть различные лайфхаки. Хотя проще прибегнуть к js.
Тоже постоянно наблюдаю такую фигню. Впрочем мне она не мешает, но возможно это какая-нибудь фича для оптимизации расхода памяти. Попробуй отключить флажок "Enable tab discarding" в chrome://flags