<button class="calc-btn--function" type="button" value="*">*</button>
W BEM klasę z modyfikatorem zawsze nadaje się razem z klasą podstawową. Ogólnie to nie bardzo BEM, bo porozrywane są relacje pomiędzy blokami i elementami.
<p id="screen" class="calc-tile__score"></p>
A może output?
Po co stosujesz let skoro większość tych zmiennych nigdy się nie zmieni (jak choćby mainModule)? No i czemu nie stosujesz składni modułów ES?
Użyj event delegation, żeby nie przypinać tylu listenerów.
A samo liczenie też nie jest jakoś super sprawne. Wykonanie w ciągu działań typu 7*2-5 podaje jakiś wynik z kosmosu.