Olá, Viviane, como vai?
O código que você compartilhou está correto e cumpre bem o objetivo proposto. A lógica aplicada identifica corretamente todos os quadrantes e também o caso em que o ponto está sobre os eixos ou na origem. O uso do match com guardas funciona bem nesse contexto e demonstra que você já está explorando recursos mais modernos da linguagem.
Uma forma de enxugar levemente o código, mantendo a mesma ideia, seria usar padrões mais genéricos e deixar toda a lógica apenas nas condições. Por exemplo, usar case _ if x > 0 and y > 0 evita a repetição de (x, y) em todos os casos e deixa o foco somente nas regras dos quadrantes.
Obrigado por compartilhar sua solução e fique à vontade para continuar trazendo suas ideias e variações aqui no fórum, ele está sempre à disposição.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!