¿Por qué la expresión lambda equivalente y la referencia de método se comportan de manera diferente al capturar el valor del campo estático?

Estoy un poco confundido sobre el comportamiento de las referencias de método y lambdas de Java. Por ejemplo, tenemos este código:

import java.util.function.Consumer;

public class Main {

    private static StringBuilder sBuilder = new StringBuilder("1");

    public static void main(String[] args) {
        Consumer<String> consumer = s -> sBuilder.append(s);
        sBuilder = new StringBuilder("2");
        consumer.accept("3");
        System.out.println(sBuilder);
    }

}

Salida:

23

Esto funciona como se esperaba, pero si reemplazamos

s -> sBuilder.append (s)

con

sBuilder :: agregar

la salida será:

2

¿Tienes alguna idea de cómo explicar esto? ¿Esto no es lo mismo? Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta