How do people feel about reusing names in a naming scheme? If you replace a computer should the new computer take the name of the old computer? If you do reuse names, do you wait until you have run out of names before reusing them? Should names follow computers or their roles?
Usually I think it's better to not reuse names.
Here's an example. If you retire the server 'aardvark', later replace it with a new server, and later still find a program which references 'aardvark' which is failing, you don't know if it's a problem with the program, or with the new aardvark. If you called the new server 'aaron' instead, you instantly know that it's the program which needs looking at. On the other hand, if the program says 'aaron', then you know that it's something on aaron.
Another example is in the migration process.
Plug in aaron, and install it, and get the services working. Then you take your nameservice alias for each service, and switch them from aardvark to aaron, and test that it works ok. At the end of the day, you can then leave both machines running until you're happy that it's ok to finally retire aardvark.
Personally I don't like reusing names. I have come across servers where they're named foo, then someone buys another one to cluster with it, and it becomes foo01 and foo02.
This seems uninventive to me.
I also don't like reusing names for replacements, say bar dies and the new one gets called bar.
Perhaps it's bad karma?
Workstation names: never re-use. We have a naming convention that includes the year and month a PC was acquired, so when a machine is replaced with a newer one, the new one will always have a different name. (Personally, I hate including the user's name as part of a PC name, since it means you have to rename it to move it to a different person, which happens fairly frequently for us.)
Server names: in a couple of cases, we have re-used these, but we try to avoid it. We've had couple of machines that were replaced with near-duplicates and we've kept those names. Otherwise, we have a very generic naming convention, so we don't really care whether a server is forv-sdc-01 or forv-sdc-17
One reason to not reuse names is to keep up to date with how applications and services need to be configured when a host name changes - or rather, verifying that this is not an issue (and fix it if it turns out to be one!).
For instance, any application dependent on a named host should probably be configured against a generic service CNAME and not a specific host name - but this might not be considered or taken into account until this kind of problem appear, and some services like SSL might not even allow this or require a manual routine to be in place for any future name change.
Staying ahead of and avoiding these problems by provoking and fixing and/or documenting them under controlled circumstances would be key to being proactive and designing a robust and modular environment ^^
In my old job, we named desktops generically and did not re-use names. The convention was department_number-type-xyz (where type was a few letter description of what it was: MO for main office, BUSOF for business office, CLASS for classrooms, etc). Servers and Linux machines got "cool" hostnames, which were generally retired when the machine was replaced.
Generally, I think it is best in a medium-to-large environment to associate names with the machines and retire them together. A CNAME in DNS can be used to point services to the right machine. That way, the machine that used to run www.example.com can be used to run syslog.example.com without having to be confused as to why the web server isn't running on www anymore.
For small installations, like home use, do whatever you want. My naming scheme at home started with places I've seen tornadoes, and when that well ran dry, I started using memorable cities from storm chasing trips. I don't re-use names, but that's a personal preference.
TL;DR: Tie names to specific machines and use generic cnames for services.
I think you should reuse the names if the machine is attached to a user.
For example, we name our computers using the full name of the person who is the primary user. This makes it easy to find the computer and connect to it for diagnostics etc. Also, it does not require you to walk the user through cmd -> ipconfig to get the IP address. It also make inventory a breeze.
For servers, there is no attachment to the name unless users are used to UNC path names... How many of your users use UNC paths regularly?