Match не возвращает значения?
Дык у вас там вообще нет return, потому и "бред".
Рабочий вариант:
function select($a): callable{
  
  return match($a){
  1 => function($b, $c) { return $b + $c; },
  2 => function($b, $c) { return $b - $c; },
  3 => function($b, $c) { return $b * $c; },
  };

}