java.net.Proxy DEVE apoiar o SOCKSv4, mas não no OpenJDK6 nem no OpenJDK7. Estou planejando registrar um bug.
Mas o código SOCKSv4 já está lá e pode ser ativado.
Use a reflexão para extrair o campo impl em um objeto java.net.Socket. Transmita esse objeto para java.net.SocksSocketImpl. Use a reflexão para definir o campo booleano useV4 neste objeto como true.
Em seguida, conecte-se e use o SOCKSv4.