Да - для приложений (проектов). Это гарантирует одинаковые версии у всех разработчиков и на проде.
Нет - для библиотек (пакетов, публикуемых на Packagist). Потребители должны сами разрешить зависимости. Lock-файл библиотеки игнорируется при установке через composer require.
Директория vendor/ никогда не коммитится - добавьте в .gitignore.