1. отдельно то отдельно, но вот простой select * начинает работать жутко более медленно, а также ещё много некоторых специфичных вещей, которые могут возникнуть в конкретной задаче
в некоторых местах, где работают с высоконагруженными базами данных

за select * лишали части зарплаты

5. насколько редко, это скорее вопрос архитектуры ситемы. Всё таки логичнее делать так, чтобы отдача бинарных данных могла работать минуя базу данных. (вопрос гибкости, маштабируемости и вообще по KISS).
Ну нет смысла просто хранить в базе файлы, если база эти файлы никак не обрабатывает.
Вот возьмём пример абстрактный, нужно грузить кортинки из хранилища:
я бы положил файлы на fs, всю метаинформацию и т.д. конечно положил бы в db. тогда я смог бы тупо возвращать не файлы, а например ссылки на файлы, в виде URI. А сами файлы через какой-нить web-сервер, webdav и т.д. Через базу ходить за файлами была бы большая нагрузка для базы.
ну это вот если мы действительно просто так эти самые файлы отдаём. а если мы хотим например денежку за них попросить

? или ещё как затруднить доступ

да притом так, что бы линк каким экзотическим был ? наличие промежуточного звена вполне может позволять как то обрабатывать эти файлики, например watermarks на картинки какие нибудь специфичные накладывать, динамически изменяющиеся

из всех возможных здесь решений база не самое неудобное
