Por que meu site mostra o layout mobile num monitor grande?
Porque a media query está reagindo à largura real da viewport (window.innerWidth), não à resolução do monitor: se a janela do navegador ocupa só metade da tela, num split view ou lado a lado com outro app, a viewport pode ficar abaixo do breakpoint mobile mesmo o monitor sendo 4K.
innerWidth inclui a barra de rolagem?
Não: window.innerWidth já desconta a largura da barra de rolagem vertical quando ela está visível, então o valor reflete a área realmente disponível para o conteúdo da página, diferente de outerWidth, que mede a janela inteira do navegador incluindo toda a moldura.
screen.availWidth é diferente de screen.width?
É: screen.availWidth desconta áreas reservadas pelo sistema operacional, como a barra de tarefas do Windows ou o dock do macOS, enquanto screen.width reporta a resolução bruta do painel; nenhum dos dois, porém, reflete o tamanho da janela do navegador em si.
Devo usar screen.width em algum caso?
Só quando o objetivo é conhecer a capacidade do monitor físico, como escolher a resolução máxima de um vídeo para oferecer ao usuário; para decisões de layout, espaçamento e breakpoint, window.innerWidth é sempre a medida correta porque reflete o espaço real disponível para o conteúdo.