Então eu me sinto um pouco idiota agora, mas eu sei qual era o meu problema. Compartilharei aqui para fins históricos.
Essas regras realmente funcionam, é apenas a minha metodologia de teste quebrada. Estou encaminhando o MS SQL de um cluster para um banco de dados remoto. Mas, na verdade, não posso testar se está funcionando porque o único endereço IP com permissão para atingir o banco de dados remoto está sendo usado por um único servidor que não está fazendo proxy de outras solicitações e está em produção. Então eu tenho tentado usar o curl para acertar outro servidor web através do proxy e ver se recebo uma resposta. Então eu poderia apenas mudar os endereços IP e as portas ao redor e esperamos que funcione.
Mas meu problema era a regra
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
estava pegando todas as respostas que chegavam e não as encaminhava. Quando percebi isso, comentei esta regra e tudo funcionou. E como na produção, será uma porta completamente diferente, essa regra não afetará negativamente o proxy.
Obrigado a qualquer pessoa que tenha gasto algum tempo tentando descobrir meu erro.