It is not about compromising DNS servers at coffee shops.
If I go to a coffee shop, do any packets even have to go to coffeeshopwifi.com or example.com at all?
1. DHCP happens.
2. I type http://example.com, but I get 'Please click AGREE etc. for WiFi'. So far, this should all be internal to the local network.
3. I click on AGREE, but my browser actually goes to philzcoffee.com