В чем смысл пакетов в python?
пакеты нужны для стандартизации и унификации. С помошью пакетного менеджера пакет может быть установлен из сециального централизованного репозитория, из системы контроля версий, из спейиального упакованного файла.
Пакет несет в себе всю необходимую информациб о своих зависимостях (какие еще пакеты нужны для его работы), информацию об авторстве, ребованиях к версии питона и других пакетов...
Если оформить проект пакетом, его становится проще разворачивать в продакшн-среде.

вы можете собрать лектрощиток в подьезде из проволочек, пружинок, изоленты и горячего клея на скрутках, а можете поставить стандартную дин-рейку. на нее установить стандартные автоматы и УЗО, использовать стандартные провода, наконечники и клеммники к ним. Ту же самую функциональость можно получить из дерьма и палок, но она не будет надежной и выглядеть будет соответствующе, а любой таракан устроит пожар. С пакетами тоже можно устроить "пожар", особенно если не умеешь программировать и "накрутить проводов" кажется более простым решением.
я так понял что есть модули и есть пакеты, пакеты состоят из модулей (и еще может быть пакетов)
1) без них невозможно импортировать какие-либо файлы с других папок?
вот тут я завис, вопрос непонятен. 
Вы устанавливаете сторонний пакет. 
делаете импорт нужного вам модуля
from pandas import DataFrame
не вижу преград