Generalizando a resposta do @ WayneM, mas não ousando editá-lo tanto.
Então, parece que essa estrutura pode ser observada em frameworks de aplicações (pelo menos no Rails e no symfony).
É uma maneira de manter intacta a estrutura lib
/ src
para desenvolvedores de aplicativos, enquanto adiciona o outro nível de distância trazido pelo uso de uma estrutura: a pasta vendor
na verdade contém as bibliotecas da estrutura, deixando a pasta lib
para as bibliotecas incluídas na aplicação e src
para seus arquivos de origem.
É um "mais distante" lib
, vital, pois sem o framework, o aplicativo é inútil, mas não deve ser tocado pelo desenvolvedor do aplicativo: são as bibliotecas do fornecedor do framework .