De fato é complicado mesmo, tem que ir caçando e juntando tudo, algo que poucos fazem e por isso poucos se destacam, eu não tenho nada organizado.
Delegate de forma geral é bem mais caro, mas tem algumas otimizações, especialamente nas versões mais novas, mas nem sempre é possível usar. Ele é uma classe com as variáveis capturdas e mais de um método a ser chamado.
- https://stackoverflow.com/questions/7150977/how-methods-of-delegate-type-are-generated-internally
- https://stackoverflow.com/questions/68472470/lambda-expression-compiler-code-generation
- https://github.com/dotnet/csharplang/blob/main/spec/delegates.md
Hoje tem atas de todas as reuniões, mas as reuniões antigas não tem, só vonversando com o Anders, Mads, Eric e outros.