I believe that the reason this isn't working is that the incoming packets are routed through the firewall but the return traffic is direct between $polipo_proxy and the local device. See the the Traffic Redirection and Reflection section of the Redirection Chapter of the PF User's guide. It explains similar configuration issues and offers several different ways to redirect internal traffic.
http://www.openbsd.org/faq/pf/rdr.html#reflect