Diferencias entre crear una nueva clase para usar export const

Preparar:

BabelJS (es2015, reaccionar, etapa-1)Paquete webReaccionar / reducir

Nuevo en CommonJS y ES6. Sé la diferencia entre una instancia de objeto y un contenedor estático de métodos, pero no estoy seguro de cómo se comportan cuando se separan de los módulos. Entonces, me pregunto cuáles son las diferencias entre devolver una instancia (¿es este patrón válido en absoluto?):

// StateParser.js

class StateParser {
    constructor() {
     }

     method1() {
        ...
     }

}

export default new StateParser()

y exportar métodos const:

// StateParser.js

let state = {
}

export const method1 = () => { ... }
Método A: ¿Habrá una nueva instancia cada vez que importe?

Método B: es uno de los beneficios de la capacidad de utilizar la desestructuración de objetos:

import { method1 } from '../utils/StateParser.js';

y luego usar el método1 como si existiera localmente?

Método A: ¿Es uno de los beneficios la capacidad de inicializar el estado en el constructor?

Básicamente, no estoy seguro de cuándo usar cuál para mis clases de utilidad y agradecería su aporte.

Respuestas a la pregunta(1)

Su respuesta a la pregunta