Если вы смотрите на это с точки зрения развертывания автономного приложения для пользователей, на которых может быть установлена или не установлена правильная (или любая) версия Python, то, конечно, имеет смысл объединить модуль и его зависимости с требуемой версией Python.
Суть virtualenv в том, что вы можете иметь изолированную версию Python, которая не будет портить вашу локальную установку, независимо от того, что вы с ней делаете. Если вы хотите установить 12 зависимостей, чтобы поэкспериментировать с чем-то, а затем стереть все по окончании, это не проблема. Если у вас есть четыре приложения на веб-сервере, которые были разработаны с использованием трех разных версий одной и той же библиотеки, вам не нужно скрещивать пальцы и заставлять их всех использовать самую последнюю версию.