Curiosamente, a importação do os.path importará todo o os. tente o seguinte no prompt interativo:
import os.path
dir(os)
O resultado será o mesmo que se você tivesse importado os. Isso ocorre porque o os.path se refere a um módulo diferente com base em qual sistema operacional você possui, portanto, o python importará o os para determinar qual módulo carregar para o caminho.
referência
Em alguns módulos, o ditado import foonão será exposto foo.bar, então acho que depende realmente do design do módulo específico.
Em geral, apenas importar os módulos explícitos necessários deve ser um pouco mais rápido. Na minha máquina:
import os.path: 7.54285810068e-06 segundos
import os: 9.21904878972e-06 segundos
Estes tempos estão próximos o suficiente para serem razoavelmente insignificantes. Seu programa pode precisar usar outros módulos osagora ou mais tarde; portanto, geralmente faz sentido sacrificar os dois microssegundos e usá-lo import ospara evitar esse erro posteriormente. Eu costumo lado apenas importando os como um todo, mas posso ver por que alguns preferem import os.pathser tecnicamente mais eficientes e transmitir aos leitores do código que essa é a única parte do osmódulo que precisará ser usada. Essencialmente, tudo se resume a uma questão de estilo em minha mente.