First off, there are characters that would be illegal in a URL and would cause a name to be unable to resolve, such as spaces, newline, tab and other control characters.
Barring that, one cannot just create a new top-level (ie: com, net, org, uk, etc…) domain for public use. Briefly put, resolving a DNS name to an IP address is a multisteped process that starts with whatever is to the right of the last period and moves to the left. For example:
I want to go to www.straightdope.com. When I type that in, my browser needs to know (behind the scenes) what IP address www.straightdope.com resolves to. It will first send a DNS query to one of the many root servers, asking for the address of a server authoritative for .com. It will then go to one of those .com servers asking for a server authoritative for straightdope.com. It will then go to one of those servers asking for www.straightdope.com. (Note: These can be cached on your computer or local DNS server, saving a few steps.)
The point being, if you wanted to create a .smdb top-level domain, nobody would be able to get to it, since the root DNS servers wouldn’t know where to direct anyone looking for a .smdb authoritative server. This is where ICANN comes in, running the root servers which contain a list of all DNS server for top-level domains - if they don’t list you, it’s not gonna happen.
Of course, you could set this up on your personal DNS server and point your friends to it, but the general public won’t be able to get to any .smdb servers.
As for the second part, you can create a DNS record for any server you want to the left of the domain. For instance, this site is boards.straightdope.com. It’s as simple as adding a record boards. on the DNS server which controls straightdope.com. It could have easily been cecil., tripler., or chicagoreader.
On preview, I’ve been beaten.