Аргументы шаблона являются заполнителями, их область действия ограничена только одной декларацией.
Следовательно, T
in
template<class T> struct Alloc { };
не подключен к T в
template<class T> using Vec = vector<T, Alloc<T>>;
аналогично тому, как вы можете использовать одно и то же имя параметра в различных объявлениях функций.