хм, читая статью возник вопрос. В самом первом примере кода создается метод в котором находится логика лямбды, и используется CallSite объект чтобы этот метод вызвать. Зачем использовать CallSite объект, если такой метод уже создан, и мы можем просто вызвать его?
Потому что в общем виде целевой MethodHandle (MH) можно положить в MutableCallSite и менять его на лету, давая рантайму переоптимизировать. Для лямбд это не важно, потому что целевой MH там лежит в ConstantCallSite (CCS). JIT-компилятор, увидя слинкованный CCS, тупо найдёт там целевой MH, и заинлайнит сквозь него.