O Unix para o qual o Linux foi baseado não faz uso específico de interrupções em termos de design.
Na arquitetura x86, chamar uma interrupção faz com que a execução esteja no anel 0. Embora, na realidade, um syscall esteja realmente usando o contexto existente e apenas salve o estado da thread com o primeiro registro (EAX) configurado para o syscall. Os outros registradores são os outros operandos do syscall. Você pode ver porque isso é bem portátil.
Talvez 2-3 mnemônicos sejam salvos pulando essa etapa. Ter todas as syscalls referenciadas como interrupções tornaria o código não portátil e, se fossem necessárias mais de 256, você teria que usar um sistema como este. Uma interrupção suave no x86 é compartilhada com endereços de interrupção de hardware na Tabela de Vetor de Interrupções (IVT). Então, a ideia de usá-los, especialmente em certas configurações de hardware, é totalmente possível.
Além disso, fazer várias interrupções temporárias aumenta as chances de erros de cache, já que um código manipulador de interrupções semelhante teria que ser carregado de diferentes áreas da memória.