Ответ 1
Согласно http://en.cppreference.com/w/cpp/language/class_template_argument_deduction
Определяемые пользователем руководства по вычитанию должны указывать шаблон класса и должны вводиться в пределах той же семантической области шаблона класса (который может быть пространством имен или охватывающим классом), а для шаблона класса участников должен иметь один и тот же доступ, но руководства по выведению не становятся членами этой сферы.
Таким образом, clang кажется правильным.