Where the complexity comes in, is that it's not just simply one IP address being matched to a single domain name.
If that were the case, there wouldn't have been any outages for these websites.
The problem is that there's thousands of IP addresses that are mapped to tens or hundreds of domain names for a single domain, for example, load balancing and other supporting services.
Visit facebook.com and record all network activity. It's not just facebook.com you see, there's x.facebook.com, xyz.facebook.com, etc... It's also not the same IP address for everyone. It get's very complex.
If the authoritative name server for a domain or several domains that support a single domain becomes unavailable, things will be fine until the TTLs expire. Once that happens on the DNS servers down the chain, you don't get the name resolution anymore, and those dns servers can no longer find a path to resolution.
When you combine that with all the other interworkings of a domain, it can be awhile until things get better, even if the attacked name servers get better.
How many of you have ever bought a single domain name and see the message it may take up to 48 hours or whatever to propagate?
The above is pretty a pretty basic explanation and understanding, but I'm just trying to get my point across without making a massive wall of text.