Na minha experiência, tive que gerenciar as duas situações: imagens armazenadas no banco de dados e imagens no sistema de arquivos com o caminho armazenado no banco de dados.
A primeira solução, imagens no banco de dados, é um pouco "mais limpa", pois sua camada de acesso a dados precisará lidar apenas com objetos de banco de dados; mas isso é bom apenas quando você precisa lidar com números baixos.
Obviamente, o desempenho do acesso ao banco de dados quando você lida com objetos binários grandes é degradante, e as dimensões do banco de dados aumentam muito, causando novamente uma perda de desempenho ... e normalmente o espaço no banco de dados é muito mais caro que o espaço no sistema de arquivos.
Por outro lado, ter objetos binários grandes armazenados no sistema de arquivos fará com que você tenha planos de backup que precisam considerar o banco de dados e o sistema de arquivos, e isso pode ser um problema para alguns sistemas.
Outro motivo para optar pelo sistema de arquivos é quando você precisa compartilhar os dados de suas imagens (ou sons, vídeo, o que for) com acesso de terceiros: atualmente, estou desenvolvendo um aplicativo da web que usa imagens que precisam ser acessadas de "fora" "meu web farm de tal maneira que um acesso ao banco de dados para recuperar dados binários é simplesmente impossível. Às vezes, também existem considerações de design que o levarão a uma escolha.
Considere também, ao fazer essa escolha, se você precisar lidar com permissão e autenticação ao acessar objetos binários: esses requisitos normalmente podem ser resolvidos de uma maneira mais fácil quando os dados são armazenados em db.