'Regla especial de compatibilidad de vacíos' de Lambda - expresión de declaración

Estoy leyendo Java 8 en acción. En la sección 3.5.2 hay un párrafo sobre 'regla de compatibilidad nula':

Si una lambda tiene una expresión de declaración como cuerpo, es compatible con un descriptor de función que devuelve nulo (siempre que la lista de parámetros también sea compatible). Por ejemplo, las dos líneas siguientes son legales aunque el método add de una Lista devuelve un valor booleano y no nulo como se esperaba en el contexto del Consumidor (T -> nulo):

// Predicate has a boolean return 
Predicate<String> p = s -> list.add(s); 
// Consumer has a void return 
Consumer<String> b = s -> list.add(s);

¿Cómo describirías 'expresión de declaración' en general? Pensé que era una declaración o una expresión. Además, esta regla de compatibilidad nula no es 100% clara para mí, ¿puedes pensar en algún otro ejemplo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta