Объясните, почему никто не хранит в векторе unique_ptr<void> ? Это же круто, можно любой тип поместить и если ты 100% уверен, что там нужный тебе тип - получить его, тупо скастовав, не?
Идея unique_ptr в том, чтобы давать пользователю уникальный интерфейс для удобного взаимодействия с dynamic allocated объектом. Каким боком это будет работать с deleter-ом без типа объекта? Для таких граблей в STL уже есть инструменты.