тут скорее чтобы обезопаситься от других типов, если попытаться создать новый тип где-либо в другом месте. плюс мы сразу видим какие типы результатов могут быть, по ним можно судить о логике обработки. к тому же, если мы добавим сами новый тип, то компилятор не позволит нам забыть обработать этот новый тип, потому что где-то будет метод с when-ом по конкретным типам