1st Answer:
Per my answer to another one of your recent questions on DNS, as you know, you need two DNS servers for redundancy purposes. But 1 must always act as your "master," and (when configured correctly), the second name server should replicate data from the master.
That said, you have the same SOA (Start of Authority) value in both your servers because one of the fields in the SOA record is the computer name, or "The FQDN of the name server that was the original or primary source of data for this zone" (http://help.dnsmadeeasy.com/records/soa-record/).
You should only need to change DNS records on the master server (your primary source of data) which gets replicated out to the additional redundant Name Server(s).
Second Answer:
Short answer: For redundancy purposes.
Long Answer: For redundancy purposes. If NS1 goes down temporarily, you don't want caching servers to suddenly "forget" about NS1 because NS2 didn't have a record for it, or vice-versa. Both servers serve DNS data "indiscriminately" - their zone files need to have the exact same data, and this only makes sense because your slave server(s) are simply pulling data from the master server - i.e. as I said before, you should NEVER have to update data (the zone file) on NS2 because it should replicate from NS1.
Third Answer
Think about it. Why not? Seriously. Your servers need to be able to talk to themselves.
Configured properly, this shouldn't be a problem. Requests to localhost should always work. But this is simply insurance (although it wouldn't be a huge problem if you removed it). The purpose is to prevent any requests your server uses to talk to itself from "leaking" onto the internet. My recommendation: Keep it.
Also, cross-reference this answer on a similar question: https://serverfault.com/a/120785/57332
But seriously: Based on your earlier questions and this one, I still don't recommend you maintain your own DNS servers. Use the ones provided by your registrar and/or your hosting provider.