Dlaczego tak
Właściwość value pola input zawsze zwraca tekst, więc operator + skleja napisy "7" i "5" w "75". Zamiana każdej wartości na liczbę przed dodaniem daje 12. W pozostałych poprawkach najpierw następuje sklejenie tekstów, a dopiero potem ewentualna konwersja, więc parseInt("75") i "75" * 1 nadal dają 75.