How to flush DNS resolver cache on Linux (and FreeBSD)

I don't get your question because you say some nonsense.

If you are on a Linux/Unix system that does not run a DNS server 'named/bind/other' the system does not cache any DNS query. Applications (DNS clients) just query the DNS server every time without caching, they query the DNS server every time. If you use a DNS server 'named/bind' and want to clear the cache just restart this service (Freebsd: /etc/rc.d/named restart) but there is no point for this.

If a DNS entry changes, the change gets picked up much later.

How this can be? Do you run a DNS server or not? If you run a secondary DNS server you just get a copy of the zone from primary server and there is no point to flush cache. You can push the server update zone from the primary server by deleting the zone file and restarting your DNS service. If you run primary DNS and want to update zone information, change the serial in zone and restart service:

# /etc/rc.d/named restart (for named)
# rndc (for bind9)

To update zone information. To check if you get right dns answer use:

# dig @dns_server

pushes me to move software to Windows that has ipconfig /flushdns

For what?