You are grumpy. You didn't understand me, don't be so quick to act like I'm an idiot. Here is how it works on most home networks.
Everyone uses DHCP, the hostname is set locally on all the machines. When the DHCP server leases an address, it gets the hostname of the machine from the machine it's leasing an address to. The DNS server in the router resolves those hostnames to the IP address assigned by DHCP (keep in mind, the machines gave their hostnames to the router, not vice versa).
I even have a screenshot of how it looks in my router, the computers all have hostnames, they aren't assigned by the router but set by the computers, which are all using DHCP. Except the Xbox, because it doesn't have the option to set one. Hostnames do NOT need to be defined in the router manually.
In Windows, the hostname is the computer name, which you can set in System Properties. Again, the hostname has been defined by the computer, not by the router. You can see the computer name of two of the PCs in this apartment in the screenshot below.
You have an off the shelf, consumer grade router? Try to ping the computer name of one of your machines. Makes sure it's one that doesn't have it's hostname manually defined in the router. It works! Is it magic? No.
http://bitsurge.net/pictures/hostnames.JPG
I've been doing this for years, and so have millions of other people that just buy a cheap router and plug it in whether they know it or not. In fact, I'm pretty sure it's the default behavior. Just looking to add some convenience for home users.
The Microsoft DHCP server supports this feature, so does Linux DHCPd, so did my $30 D-Link router that I bought 4-5 years ago.