Why are the recent DDoS attack against DNS provider Dyn, and other similar attacks successful?  Sure a DDoS attack can bring an entity down, and if that entity controls DNS servers then queries to those nameservers will fail, and domains listed under those nameservers will not be reachable by any host that doesn't already have IP information for them.

But since browsers cache DNS records, many hosts will already have IP information for those domains (at least until their cache entries expire) and therefore the fact that the nameservers are down shouldn't matter to the hosts with caches.  But this does not appear to be the case: during yesterday's attack I was unable to access github, npm, etc.

You are correct that the DNS cache would mitigate against a nameserver being unavailable.  It is extremely common to have a TTL of 5 minutes or lower.  Hence, 5 minutes after the DDOS attack brought down Dyn, your cache would've been invalid and you wouldn't have been able to hit github, etc. 