Actually the mac sets up a WAP node. Windows internet sharing uses ad-hoc. The problem is that the kindle aways uses 0 in the "number of seconds since boot" field of the dhcp request packet, and the mac has a filter of 4. So it ignores the DHCP request from the kindle (and the xbox, and the Nintendo). If you change the filter to 0, then the mac happily hands out the addresses. How to do it:
1. start internet sharing
2. cp /etc/bootpd.plist . ## don't forget the "." that means the current directory!!
3. stop internet sharing
4. open bootpd.plist
5. change reply_threshold_seconds to 0
6. sudo cp bootpd.plist /etc
7. start internet sharing
Normally the bootpd.plist is created and destroyed as you start up and stop internet sharing. If the file already exists, it uses the values in it. This can cause problems if, for example you move your laptop to a network that uses the same network values as the plist. So if you do this at work with an ethernet address of a.b.c.x, the bootpd.plist will have addresses of 10.0.2.x. If you go home and have a home router that also uses 10.0.2.x, then the mac will get confused. However, if your home network uses 192.168.0.x, 10.0.1.x, (anything but 10.0.2.x) then you will be ok.