Dlaczego tak
Przy box-sizing: border-box szerokość width obejmuje treść, dopełnienie i obramowanie, więc na treść zostaje 300 − 2 · 20 − 2 · 5 = 250 px. Wynik 260 px pomija obramowanie, a 300 px traktuje width tak, jakby dotyczyła samej treści. 350 px to całkowita szerokość przy domyślnym content-box (300 + 40 + 10); margines nie wchodzi w żaden z tych wymiarów, bo leży poza ramką.