Yes, there are extensions. Look for Amasty shipping restrictions, shipping rules, and shipping table rates. You can even use all 3 together. We use both table rates and restriction extensions on our production and works perfect.
I'm not aware of off-the-shelf extension to do a), its usually done by declaring zipcodes that make up the 30 mile radius (in which case it is covered). We have worked on custom extns do this this functionality using geo-location on the destination address, but just haven't released as a general extn as its pretty specific to the use case
B) is covered in a variety of extns on the market.