O Bundler é iniciado a partir do diretório raiz do seu aplicativo para garantir que todas as gemas necessárias estejam presentes para que seu aplicativo funcione. Se por algum motivo você não precisar mais de uma gema, será necessário executar o
gem uninstall gem_name
como você afirmou acima. Portanto, toda vez que você executar o bundler, ele verificará novamente as dependências
EDITAR - 24.12.2014
Vejo que as pessoas continuam chegando a essa questão, decidi acrescentar algo. A resposta que dei foi para o caso em que você mantém suas joias globais. Considere o uso de um gerenciador de gemas como rbenv ou rvm para manter conjuntos de gemas com escopo em projetos específicos.
Isso significa que nenhuma gema será instalada em um nível global e, portanto, quando você remove uma do Gemfile do projeto e reexecuta o pacote, obviamente, ela não será carregada em seu projeto. Em seguida, você pode executar bundle clean (com o diretório do projeto) e ele removerá do sistema todas as joias que foram instaladas uma vez do seu Gemfile (no mesmo diretório), mas neste momento não estão mais listadas lá .... longa história curta - remove joias não utilizadas.
gem uninstall pg
partir da pasta do projeto irá desinstalar o pg do seu gemset de nível global / sistema em vez do bundler