Ответ 1
Это правило фактически интуитивно понятное: любое вхождение переменной, которая не требует захвата, относится к исходной переменной. [expr.prim.lambda]/11:
Каждое id-выражение в составной формуле лямбда-выражение, которое является нечетным использованием объекта, захваченного копией, преобразуется в доступ к соответствующему неназванному элементу данных тип закрытия. [Примечание: Идентификатор, не являющийся неприемлемым относится к исходному объекту, никогда не относится к типу замыкания. [...] - примечание к концу]
Ясно, что объявленная переменная size
может использоваться в постоянных выражениях, поэтому Clang прав.