Explicación detallada de la captura variable en cierres

He visto innumerables publicaciones sobre cómo la captura de variables atrae variables para la creación del cierre, sin embargo, todas parecen detenerse ante detalles específicos y llaman a todo esto "magia del compilador".

Estoy buscando una explicación clara de:

Cómo las variables locales sonactualment capturado.La diferencia (si la hay) entre capturar tipos de valor frente a tipos de referencia. Y si hay algún boxeo con respecto a los tipos de valor.

Mi preferencia sería una respuesta en términos de valores y punteros (más cerca del corazón de lo que sucede internamente), aunque también aceptaré una respuesta clara que incluya valores y referencias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta