Quando um usuário se conecta por uma VPN, a geolocalização de IP não falha, ela apenas responde a uma pergunta diferente da que você queria fazer. A consulta identifica corretamente a rede pela qual o tráfego está saindo no momento, que é o servidor do provedor de VPN, e não a conexão do próprio usuário. Se esse servidor de saída fica em outro país, o resultado de localização vai situar o usuário lá com segurança e de forma correta, porque, do ponto de vista da rede, é realmente dali que o tráfego se origina.
Os proxies se comportam da mesma forma em princípio, embora os detalhes variem. Um proxy de encaminhamento repassa uma requisição de um IP para outro, e o destino só vê o endereço do proxy. Um proxy transparente pode repassar o endereço original do cliente em um cabeçalho, mas um proxy bem configurado o oculta totalmente. Em qualquer caso, a consulta de geolocalização não está errada sobre o IP que recebeu. Ela simplesmente descreve a rede à qual esse IP pertence, que é a infraestrutura do operador do proxy ou da VPN, e não a pessoa por trás dela.
Isso importa para dois casos de uso diferentes que costumam ser confundidos. Se o seu objetivo é conformidade ou localização de conteúdo, uma leitura precisa da rede de saída muitas vezes é exatamente o que você precisa, já que essa é a jurisdição pela qual o tráfego é legalmente roteado. Se o seu objetivo é detecção de fraudes, o sinal interessante não é a localização em si, mas o fato de a conexão vir de uma infraestrutura conhecida como provedor de VPN ou de hospedagem, e não de uma rede residencial ou móvel, o que é um dado separado da geolocalização em si.
Detectar que um IP pertence a uma infraestrutura de VPN ou de proxy é um problema diferente de situar esse IP em um mapa, e depende de acompanhar quais faixas de endereços são operadas por provedores de hospedagem e de VPN, uma lista que muda constantemente à medida que novos serviços são lançados e os antigos são reatribuídos. Isso está disponível como um sinal opcional junto com o resultado geográfico, já que incluí-lo por padrão em todas as respostas deixaria mais lentas as requisições que não precisam dele.
Nada disso torna a geolocalização de IP menos útil. Apenas faz dela uma descrição da topologia da rede, que é o que ela sempre foi. Trate um resultado sinalizado como VPN como "esta conexão sai no momento por esta rede", e não como "com certeza não é aqui que o usuário mora", e os dados fazem exatamente o que prometem. Para obter detalhes de rede junto com os campos de localização, passe mg_extras=1 ou o cabeçalho X-MG-Extras na consulta IPv4 ou IPv6.
Um endereço no centro de uma cidade bem mapeada quase não diz nada sobre como o seu sistema lida com uma estrada rural, uma fronteira disputada ou uma consulta perto dos polos. Teste os casos difíceis de propósito.
Nem todo conjunto de dados com informações de localização de aparência pública pode ser usado legalmente dentro de um produto pago. Os termos de licenciamento, e não a disponibilidade técnica, costumam definir o limite real.
Quando uma consulta realmente não pode ser resolvida de forma confiável, não retornar nada é uma resposta melhor do que retornar um palpite disfarçado de fato. Veja o raciocínio por trás dessa escolha.