Registering them with the domain's registrar is necessary if you're using hosts within a zone to provide nameservice for the zone itself. This solves the chicken / egg problem of delegation, by adding the relevant "glue" records to the authoritative servers for a TLD (like com.).
aura% dig ns1.dreamhost.com @b.gtld-servers.net +norec
;; ANSWER SECTION:
ns1.dreamhost.com. 172800 IN A 184.108.40.206
These "glue" records allow the gtld-servers to delegate dreamhost.com to ns(1,2,3).dreamhost.com. 
The servers that are authoritative for com. have to know what ns1.dreamhost.com is before they can delegate it.
That all depends. If you have nameserver software running on a machine somewhere, you can point a record like:
ns1 IN A 220.127.116.11
You can do this yourself from the web panel. Then you can even register this IP as a host (nameserver) for your domain. The issue is when we provide the nameservers in question - in that case, you have to pay us money.
Any domain should point to at least two nameservers, and the nameservers should be on different machines and different networks.
I hope this makes sense and answers your question.
 This is why you should never use a conventionally used subdomain like "www" - stale glue from people registering "www.example.com" is a common cause of inconsistent DNS behavior (some people will see the outdated information; some people will see the new information).