Что-то ты запутался:
* 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), то я считаю, что полную папку лучше прятать и деплоить исключительно то, что нужно.