Pergunta interessante.
Primeiro vamos observar a classe Scanner, só para conhecimento. Ela implementa a interface Closeable
public final class Scanner implements Iterator<String>, Closeable {...}
E a interface Closeable extends AutoCloseable
public interface Closeable extends AutoCloseable {...}
E nessa AutoCloseable, a própria doc da classe já dá uma ideia da função do método close().
Em resumo, você deve chamar o método close() para liberar imediatamente qualquer recurso que tenha sido alocado, evitando exceções de esgotamento de recursos e outros problemas.