Usually if you see the exact same product in 80 stores you just buy the cheapest one. But does it work that way with domains? E.g. why pay $60 vs $40 for .io? I know I can register a domain with one company and host with another, so should I just spread around all my domains to the absolute cheapest place for each, and point them all to my chosen hosting account (which absolutely does differ from service to service)?
Is there any kind of lag, like every time someone goes to xyz.com, their browser first goes to the registration company, and then redirects/bounces to the hoster? Or does the domain host just set a general setting ONCE so that visits to xyz.com go DIRECTLY to the hosting provider with absolutely no lag or chance of the domain registrar being down?
For your first question, there are only a small number of registrars, but everyone and their cat has a web hosting company. It follows, then, that the vast majority of hosts are not registrars. If they offer registration services, then they’re just going to turn around and go to one of the actual registrars themself. Might as well cut out the middleman.
For your second question, there are DNS servers all over the place. Your own computer has a DNS list for the sites you’ve visited. If you type in a URL that your computer doesn’t recognize, then it asks your ISP’s DNS server. If your ISP’s server doesn’t know, then it asks another server further up the line, and so on, until eventually (if needed) it goes to the handful of top-level DNS servers that know everything (getting your site into those top-level DNS servers is what domain name registration is all about). But usually, you don’t need to go that far: Your ISP will know most of them. The only time you need to go up further is when a site is first registered, or occasionally thereafter to make sure that nothing’s changed.
For the first part, there is only one small advantage of going with the same company for both: easier billing and configuration.
If you host and register with the same company, usually they’ll take care of all the domain configuration (DNS, name server setup, records, etc.) for you and just add it all to your bill. Otherwise you’d have to manually tinker with all the records (not hard, but just another step).