Ответ 1
Благодаря CWG 777 объявление действительно:
В объявлении данной функции все параметры, следующие за параметр с аргументом по умолчанию должен иметь аргументы по умолчанию поставляемый в этой или предыдущей декларации или должен быть функцией пакет параметров.
Вывод должен преуспеть во всех трех случаях, поскольку аргумент по умолчанию не имеет никакого отношения к характеру вычитания: если аргумент параметра пакета args
не указан, он выводит пустой пакет через [temp.arg.explicit]/3, в противном случае применяется обычное правило в [temp.deduct.call]/1 (как пакет явно не в контексте, не выведенном).