Hey Brian,
I thought the FreeBSD PF firewall can do this for you (check out the comments):
https://utcc.utoronto.ca/~cks/space/blog/unix/OpenBSDPfRedirIssue?showcommen...
--David KI6ZHD
Well, after thinking about it a bit and reading the relevant RFCs, I thought I'd give it a try and wrote some code in the router daemon to do this.
Unfortunately, the FreeBSD kernel prohibits a user-space process from sending ICMP Redirects - you get 'Permission denied' errors when you attempt to write one to the outgoing ICMP socket.
Too bad, it would have been an interesting experiment.
Maybe there's some way to fiddle the routing table so that the kernel itself sends them. I'll look into it, but a quick peek into the kernel source suggests it's not doable.