Как использовать менеджеры пакетов? Composer, bower, другое?
Что-то ты запутался:
* composer - это штука для управления зависимостями бэкэнда
* bower - это штука для управления зависимостями фронтенда
ключевые слова тут "управление зависимостями"
Ты же беспокоишься, что в итоге у тебя будет торчать наружу. Так вот, не /vendor не /bower_components не должны быть доступны. Доступной у тебя должна быть одна директория - public_html в которой у тебя будет index.php и папка assets в которую и будет собираться вся media (css, js, картинки и т.д.). Как это организовать уже второй вопрос, на который тебе ответит гугл по запросу "сборщик проектов".
И теперь по порядку:
1)  пользоваться отдельно Composer для PHP, и отдельно Bower
да
2) Придется параллельно пользоваться двумя разными менеджерами пакетов
да
3) Тогда вопрос, где размещать PHP и JS файлы собственно моего проекта? В /vendor и /bower_components?
да, используй папки по умолчанию
4) как это все организовать правильно, красиво и удобно? 
/ .. framework_dirs ..
/vendor
/bower_components
/public_html
 + assets/..
 + index.php
** По поводу bower, все что он генерит, многие кладут сразу в public_html, но т.к. у него нет возможности удалять лишние (например из всего пакета jquery оставить только 1 файл jquery.js), то я считаю, что полную папку лучше прятать и деплоить исключительно то, что нужно.
Запилить git bash-инсталлер(он же updater) который из входных параметров (директория для установки и т.п)сделают всю работу
upd : гугл показал это
google https://github.com/francoispluchino/composer-asset... есть риск что PHP файлы станут публично доступными через веб-сервер
Лучше повесить обработку через php интерпритатор web сервером , только ограниченное число файлов. По поводу папки vendor в них не рекомендуют хранить какие либо конфиги, не страшно если они пападут в вывод web сервера в виде исходного кода, тем более если копии лежат открыто в открытых репах